Spec-Zone .ru
спецификации, руководства, описания, API

8.9.3.4. Состояние Кэша запроса и Обслуживание

Чтобы проверить, присутствует ли кэш запроса в Вашем сервере MySQL, используйте следующий оператор:

mysql> SHOW VARIABLES LIKE 'have_query_cache';+------------------+-------+| Variable_name    | Value |+------------------+-------+| have_query_cache | YES   |+------------------+-------+

Можно дефрагментировать кэш запроса, чтобы лучше использовать его память с FLUSH QUERY CACHE оператор. Оператор не удаляет запросов из кэша.

RESET QUERY CACHE оператор удаляет все следствия запроса кэша запроса. FLUSH TABLES оператор также делает это.

Чтобы контролировать производительность кэша запроса, использовать SHOW STATUS просмотреть переменные состояния кэша:

mysql> SHOW STATUS LIKE 'Qcache%';+-------------------------+--------+| Variable_name           | Value  |+-------------------------+--------+| Qcache_free_blocks      | 36     || Qcache_free_memory      | 138488 || Qcache_hits             | 79570  || Qcache_inserts          | 27087  || Qcache_lowmem_prunes    | 3114   || Qcache_not_cached       | 22989  || Qcache_queries_in_cache | 415    || Qcache_total_blocks     | 912    |+-------------------------+--------+

Описания каждой из этих переменных даются в Разделе 5.1.6, "Переменные Состояния Сервера". Некоторое использование для них описывается здесь.

Общее количество SELECT запросы даются этой формулой:

  Com_select+ Qcache_hits+ queries with errors found by parser

Com_select значение дается этой формулой:

  Qcache_inserts+ Qcache_not_cached+ queries with errors found during the column-privileges check

Кэш запроса использует блоки переменной длины, таким образом, Qcache_total_blocks и Qcache_free_blocks может указать на фрагментацию кэш-памяти запроса. После FLUSH QUERY CACHE, только единственный свободный блок остается.

Каждый кэшируемый запрос требует минимума двух блоков (один для текста запроса и один или больше для результатов запроса). Кроме того, каждая таблица, которая используется запросом, требует одного блока. Однако, если два или больше запроса используют ту же самую таблицу, только один табличный блок должен быть выделен.

Информация, предоставленная Qcache_lowmem_prunes переменная состояния может помочь Вам настроить размер кэша запроса. Это считает число запросов, которые были удалены от кэша до свободного память для того, чтобы кэшировать новые запросы. Кэш запроса использует последнюю использованную стратегию (LRU) решить который запросы удалить из кэша. Настройка информации дается в Разделе 8.9.3.3, "Конфигурация Кэша Запроса".