MySQL - Список добавленных в кеш запросов

12 3
M
На сайте с 30.07.2009
Offline
52
1909

Как можно увидеть список запросов mysql занесённых в кеш ?

E
На сайте с 20.06.2013
Offline
4
#1

Узнайте где Ваш программист запрятак кэш, ну или хотя-бы напишите, какую ЦМС исползуете. А Вы гуглить не пробовали?

esetnod
На сайте с 16.07.2009
Offline
134
#2

На сколько помню, mysql хранит только хэш кэшированных запросов, получается что никак их не посмотреть.

Быстрый хостинг на SSD от $0.99 (http://just-hosting.ru/) | OpenVZ (http://just-hosting.ru/vds.html) и KVM (http://just-hosting.ru/vds-kvm.html) VDS от $7.95
M
На сайте с 16.09.2009
Offline
278
#3
mirrustam:
Как можно увидеть список запросов mysql занесённых в кеш ?

Никак. В mysql доступна лишь общая статистика.

Абонементное сопровождение серверов (Debian) Отправить личное сообщение (), написать письмо ().
M
На сайте с 30.07.2009
Offline
52
#4
>>>>>Узнайте где Ваш программист запрятак кэш, ну или хотя-бы напишите, какую ЦМС исползуете. А Вы гуглить не пробовали?

Гугление даёт ответ на вопросы: Как настроить кеширование, как смотреть на количество закешированных запросов. Он подробно объясняет про то, что 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 ----------

esetnod:
На сколько помню, mysql хранит только хэш кэшированных запросов, получается что никак их не посмотреть.

Может всё таки где то он их как бы и хранит в обычном виде тоже?

может этот хеш имеет алгоритм обратной расшифровки?

нет ли какой либо переменной в конфиге, которая включает логирование при занесении в кеш?

N
На сайте с 06.05.2007
Offline
419
#5

Просто так без подготовки нельзя посмотреть.

На самом деле есть патчи либо плагины позволяющие посмотреть этот кеш. Установить их может оказаться непросто для вас.

раз http://rpbouman.blogspot.de/2008/07/inspect-query-cahce-using-mysql.html

или два http://habrahabr.ru/post/165241/

Плохо то, что все равно там нет статистики по попаданиям в этот кеш. Чтобы понять, что кешируется хорошо, а что плохо нужно повозиться.

нет ли какой либо переменной в конфиге, которая включает логирование при занесении в кеш?

Используя сбороки от percona в slow-log можно настроить подобное логгирование.

Кнопка вызова админа ()
M
На сайте с 30.07.2009
Offline
52
#6

Спасибо netwind!

Пойду почитаю.

Есть ещё смежные вопросы:

1. На сервере несколько БД (для каждого сайта своя). Можно ли разрешить кеширование, или какой то тип кеширования для выбранных сайтов или БД? А остальные пусть без кеша живут.

2. Упомянутый мной выше способ монтирования папки в память через файл fstab «none /mysql_tmp tmpfs noexec,nosuid,size=512M 0 0» - просто указывает mysql сколько он может использовать памяти или же он эту память сразу блокирует и не даёт никому использовать?

N
На сайте с 06.05.2007
Offline
419
#7
mirrustam:
Можно ли разрешить кеширование, или какой то тип кеширования для выбранных сайтов или БД?

1. в конфиге mysql - нельзя.

но выполняя вначале при подключении команды можно или запретить или разрешить -

set session query_cache_type

2. нет, tmpfs в linux не использует память пока не понадобится.

esetnod
На сайте с 16.07.2009
Offline
134
#8

mirrustam, tmpdir с кэшем никак не связана, он хранится в анонимном сегменте памяти процесса mysql.

Andreyka
На сайте с 19.02.2005
Offline
822
#9

Не слишком надейтесь на кеш мискуля - делайте свой на уровне приложения

Не стоит плодить сущности без необходимости
M
На сайте с 30.07.2009
Offline
52
#10
netwind:
1. в конфиге mysql - нельзя.
но выполняя вначале при подключении команды можно или запретить или разрешить -
set session query_cache_type

спасибо

netwind:

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 ----------

esetnod:
mirrustam, tmpdir с кэшем никак не связана, он хранится в анонимном сегменте памяти процесса mysql.

Я правильно понимаю?:

tmpdir смонтированный в fstab используется не для хранения закешированных запросов, а для временной записи при соединении таблиц join - ом , если не используется индекс

---------- Добавлено 21.06.2013 в 13:56 ----------

Andreyka:
Не слишком надейтесь на кеш мискуля - делайте свой на уровне приложения

хорошо : )

12 3

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий