- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу

В 2023 году 36,9% всех DDoS-атак пришлось на сферу финансов
А 24,9% – на сегмент электронной коммерции
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
Как можно увидеть список запросов mysql занесённых в кеш ?
Узнайте где Ваш программист запрятак кэш, ну или хотя-бы напишите, какую ЦМС исползуете. А Вы гуглить не пробовали?
На сколько помню, mysql хранит только хэш кэшированных запросов, получается что никак их не посмотреть.
Как можно увидеть список запросов mysql занесённых в кеш ?
Никак. В mysql доступна лишь общая статистика.
Гугление даёт ответ на вопросы: Как настроить кеширование, как смотреть на количество закешированных запросов. Он подробно объясняет про то, что mysql хранит запросы в кеше в виде пары «запрос» «выборка данных». Про настройку переменной join_buffer_size. А вот про то, как увидеть занесённые в кеш запросы, чего то не находиться.
Вот к примеру, этот запрос :
SHOW STATUS LIKE 'Qcache%';
Говорит нам насколько эффективно используется Query Cache с текущими настройками.
Одна из переменных там, Qcache_queries_in_cache = 919, говорит нам о количестве закешированных запросов.
А вот как или где можно вытащить список из этих 919 закешированных запросов мне и нужно узнать.
Сайт на PHP, большой, много запросов, через ПХП никакой специальной работы с кешем MYSQL не ведётся.
Ну, я нигде его не прятал.
Только в fstab прописал
none /mysql_tmp tmpfs noexec,nosuid,size=512M 0 0
а в etc/mysql/my.cnf
tmpdir = /mysql_tmp
это не та самая папка, где храниться кеш запросов ? :)
Мне кажется , что нет. Но, даже если и она, то вопрос это не снимает. Когда захожу в эту папку , там ничего нет.
Если что, сервер такой .
Linux 2.6.32-028stab093.2 #1 SMP Tue Aug 23 16:27:58 MSD 2011 x86_64
Mysql - 5.1.66-0+squeeze1
myhand
>>>Никак. В mysql доступна лишь общая статистика.
Ну так, mysql его сам откуда то берёт. Может есть другой способ кроме выбрки из базы. Через пхп или команду linux или ещё как ?
---------- Добавлено 21.06.2013 в 11:57 ----------
На сколько помню, mysql хранит только хэш кэшированных запросов, получается что никак их не посмотреть.
Может всё таки где то он их как бы и хранит в обычном виде тоже?
может этот хеш имеет алгоритм обратной расшифровки?
нет ли какой либо переменной в конфиге, которая включает логирование при занесении в кеш?
Просто так без подготовки нельзя посмотреть.
На самом деле есть патчи либо плагины позволяющие посмотреть этот кеш. Установить их может оказаться непросто для вас.
раз http://rpbouman.blogspot.de/2008/07/inspect-query-cahce-using-mysql.html
или два http://habrahabr.ru/post/165241/
Плохо то, что все равно там нет статистики по попаданиям в этот кеш. Чтобы понять, что кешируется хорошо, а что плохо нужно повозиться.
Используя сбороки от percona в slow-log можно настроить подобное логгирование.
Спасибо netwind!
Пойду почитаю.
Есть ещё смежные вопросы:
1. На сервере несколько БД (для каждого сайта своя). Можно ли разрешить кеширование, или какой то тип кеширования для выбранных сайтов или БД? А остальные пусть без кеша живут.
2. Упомянутый мной выше способ монтирования папки в память через файл fstab «none /mysql_tmp tmpfs noexec,nosuid,size=512M 0 0» - просто указывает mysql сколько он может использовать памяти или же он эту память сразу блокирует и не даёт никому использовать?
Можно ли разрешить кеширование, или какой то тип кеширования для выбранных сайтов или БД?
1. в конфиге mysql - нельзя.
но выполняя вначале при подключении команды можно или запретить или разрешить -
set session query_cache_type
2. нет, tmpfs в linux не использует память пока не понадобится.
mirrustam, tmpdir с кэшем никак не связана, он хранится в анонимном сегменте памяти процесса mysql.
Не слишком надейтесь на кеш мискуля - делайте свой на уровне приложения
1. в конфиге mysql - нельзя.
но выполняя вначале при подключении команды можно или запретить или разрешить -
set session query_cache_type
спасибо
2. нет, tmpfs в linux не использует память пока не понадобится.
1. Допустим, я выделил под mysql_tmp 512 мб. Но в системе через «# free -m» он пишет , что свободно всего 195. В этот момент mysql решил использовать смонтированную в память папку mysql_tmp. И данных у него было 300 мб.
Что он делает в этом случае?
1.1 Несмотря на нехватку памяти? пытается записать свои данные в папку.
1.2 Т.к. места нехватает он этот файл в память не пишет
1.3 В логе тут же пишет ошибку Incorrect key file for table '/mysql_tmp/#sql_2d05_0.MYI'; try to repair it
1.4 Сайт грохается и показывает ошибку error 500
Так? Или может по другому:
Видя, что не хватает памяти, он записывает не в mysql_tmp, а в какую то папку на диске. При этом посетитель сайта ошибки не замечает и всё для посетителя нормально работает?
---------- Добавлено 21.06.2013 в 13:53 ----------
mirrustam, tmpdir с кэшем никак не связана, он хранится в анонимном сегменте памяти процесса mysql.
Я правильно понимаю?:
tmpdir смонтированный в fstab используется не для хранения закешированных запросов, а для временной записи при соединении таблиц join - ом , если не используется индекс
---------- Добавлено 21.06.2013 в 13:56 ----------
Не слишком надейтесь на кеш мискуля - делайте свой на уровне приложения
хорошо : )