пятница, 23 апреля 2010 г.

Mysql query cache

Query Cache Configuration
site

За использование кеша запросов отвечают следующие конфигурационные переменные:

  • query_cache_type = (ON, DEMAND, OFF) — определяет включено ли кеширование или нет(ON, OFF). При использовании DEMAND кешироваться будут только запросы, в которых есть директива SQL_CACHE;
  • query_cache_size — размер кеша запросов. query_cache_size = 0 отключает использование кеша;
  • query_cache_limit — размер максимальной выборки, хранимой в кеше;
  • query_cache_min_res_unit — минимальный размер блока, хранимого в кеше;
  • query_cache_wlock_invalidate — определяет будут ли данные браться из кеша, если таблица, к которым они относятся заблокирована на чтение.

SET GLOBAL query_cache_size = 10000000;
SHOW VARIABLES LIKE '%cache%';
SHOW GLOBAL STATUS LIKE 'Qcache%' ;
  • Qcache_free_blocks показывает сколько свободных блоков есть в кеше;
  • Qcache_total_blocks — количество занятых блоков;
  • Qcache_free_memory говорит о том, сколько свободной памяти осталось в кеше;
  • Qcache_hits — количество запросов, результаты которых были взяты из кеша;
  • Qcache_inserts — количество запросов, которые были добавлены в кеш;
  • Qcache_lowmem_prunes — количество запросов, которые были удалены из кеша из-за нехватки памяти;
  • Qcache_not_cached — количество запросов, которые не были записаны в кеш из-за использования функций работы со временем и т. п.;
  • Qcache_queries_in_cache — количество запросов, которые находятся в кеше.
Для дефрагментации кеша можно выполнить команду FLUSH QUERY CACHE. (FLUSH QUERY CACHE переносит все запросы, хранящиеся в кеше в его начало и помечает оставшуюся память как один свободный блок).
site