Как вывести список кэшированных запросов в MySQL? (Qcache_queries_in_cache) - PullRequest
8 голосов
/ 15 ноября 2010

Показывает состояние, например, «Qcache_queries_in_cache»:

+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_queries_in_cache | 327      |
+-------------------------+----------+

Как мне распечатать эти 327 запросов?

В попытке оптимизировать кэширование mysql, я хочу попробовать переключиться на «по требованию»кешированиеНо прежде чем я сделаю это, я хочу получить четкое представление о том, какие запросы кэшируются или отбрасываются.Я попробовал поиск по документам mysql, google и stackoverflow, но безуспешно.

Ответы [ 2 ]

8 голосов
/ 15 ноября 2010

AFAIK SQL-запросы не сохраняются в Qcache, только их хэш. Таким образом, невозможно найти, какие запросы теперь кэшируются, кроме того, что вы выполняете один из ваших запросов и видите изменения в столбце Значение.

2 голосов
/ 12 сентября 2014

Если вы включаете профилирование переменной для конкретного сеанса

SET SESSION PROFILING=on;
show profiles;

Теперь, проверив показ профиля для запроса query_id;

mysql> show profile for query 2;

+--------------------------------+----------+
| Status                         | Duration |
+--------------------------------+----------+
| starting                       | 0.000017 |
| checking query cache for query | 0.000005 |
| checking privileges on cached  | 0.000003 |
| sending cached result to clien | 0.000005 |
| logging slow query             | 0.000002 |
| cleaning up                    | 0.000001 |
+--------------------------------+----------+

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

Но это только конкретный сеанс, у которого вы включаете профилирование для каждого сеанса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...