MySQL встроенный механизм кэширования запросов
Как выяснилось, MySQL содержит встроенный механизм кэширования запросов, который, однако не включен по умолчанию.
Проверить какие параметры кэширования выставленны по умолчанию, можно с помощью следующего запроса:
mysql> show variables like 'query_cache%'; +------------------------------+---------+ | Variable_name | Value | +------------------------------+---------+ | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 0 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | +------------------------------+---------+
Чтобы выделить под кеширование 32Мб оперативной памяти на лету, м ожно выполнить следующий запрос:
set @@global.query_cache_size=32*1024*1024;
чтобы данная настройка не слетала при перезагрузке, необходимо добавить в my.cnf в подраздел [mysqld]строчку
query_cache_size=32M
Проверим текущее состояние кэша:
mysql> SHOW GLOBAL STATUS LIKE ‘Qcache%’; +-------------------------+----------+ | Variable_name | Value | +-------------------------+----------+ | Qcache_free_blocks | 973 | | Qcache_free_memory | 14282000 | | Qcache_hits | 3293750 | | Qcache_inserts | 252819 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 66645 | | Qcache_queries_in_cache | 1342 | | Qcache_total_blocks | 3709 | +-------------------------+----------+ 8 rows in set (0.00 sec)
Qcache_free_memory – объем свободной памяти, отведенной под кэш.
Qcache_hits – количество запросов, отработанных из кэша.
Qcache_inserts – количество вставок запросов в кэш.
Qcache_lowmem_prunes – количество высвобождений памяти из-за наполненности кэша.
Qcache_not_cached – количество запросов, не подлежащих кэшированию.
Qcache_queries_in_cache – количество запросов, находящихся в кэше в настоящее время.
Мерой эффективности кэша может служить отношение
Qcache_hits / (Qcache_inserts + Qcache_not_cached)
25 069 / (11 196 + 916) = 2.06976552 (каждый второй запрос выполняется из базы)
3 293 750 / (252 819 + 66 645) = 10.3102384 (каждый 10 запрос выполняется из базы)
Поделись с друзьями:
Рубрики: DataBases, MySQL · Теги: mysql, query_cache, запросов, кэш