Конфигурация кэша запросов


Для кэша запросов в MySQL добавляется несколько системных переменных для mysqld, которые могут быть установлены в конфигурационном файле или из командной строки при запуске mysqld.

  • query_cache_limit Не кэшировать результаты, большие, чем указано (по умолчанию 1Mb).

  • query_cache_size Память, выделенная для хранения результатов старых запросов. Если равно 0, то кэширование запроса блокируется (по умолчанию). Указывается в байтах.

  • query_cache_type Можно установить следующие (только числовые) значения:

    Опция Описание
    0 OFF («ВЫКЛЮЧЕНО»), результаты не кэшировать и не извлекать
    1 ON («ВКЛЮЧЕНО»), кэшировать все результаты, за исключением запросов SELECT SQL_NO_CACHE ...
    2 DEMAND («ПО ТРЕБОВАНИЮ»), кэшировать только запросы SELECT SQL_CACHE ...

Внутри потока (соединения) можно изменить функционирование кэша запросов по сравнению с установленным по умолчанию. Синтаксис следующий:

QUERY_CACHE_TYPE = OFF | ON | DEMAND  
QUERY_CACHE_TYPE = 0   | 1  | 2
Опция Описание
0 или OFF Результаты не кэшировать и не извлекать.
1 или ON Кэшировать все результаты за исключением запросов SELECT SQL_NO_CACHE ...
2 или DEMAND Кэшировать только запросы SELECT SQL_CACHE ...