query_cache_size параметр в Mysql
Эта настройка определяет количество памяти, которое Mysql выделит на кеш запросов. Кеш работает таким образом:
- Mysql получает запрос и проверяет наличие его результата в кеше. Если данные есть, возвращает ответ.
- Если данных нет, запрос выполняется и сохраняется в кеш.
- Если таблица изменяется (любая из операций INSERT / UPDATE / DELETE) весь кеш таблицы чистится.
Это значит, что:
- Эту настройку лучше использовать только тогда, когда имеет место большое количество чтений и небольшое количество записей (100 чтений на 1 запись).
- Отключение этой настройки и использование индексов для получения высокой производительности более приемлемый вариант.
Если же вы решите использовать, сразу определяйте оба параметра (устанавливается в my.cnf):
query_cache_limit = 1M query_cache_size = 8M
## Установка размера кеша запросов и ограничения кеша на один запрос
Не используйте значения более 100…200Мб, т.к. с увеличением этого значения, производительность Mysql деградирует.
Для проверки состояние включения этого параметра, используйте запрос:
mysql> SHOW VARIABLES LIKE 'have_query_cache'
+------------------+-------+ | Variable_name | Value | +------------------+-------+ | have_query_cache | **YES** | +------------------+-------+
## Кеш включен
Для мониторинга:
mysql> show status like '%Qcache%';
+-------------------------+---------+ | Variable_name | Value | +-------------------------+---------+ | Qcache_free_blocks | 165 | | Qcache_free_memory | 3893664 | | Qcache_hits | 4654886 | | Qcache_inserts | 352314 | | Qcache_lowmem_prunes | 301 | | Qcache_not_cached | 66691 | | Qcache_queries_in_cache | 147 | | Qcache_total_blocks | 469 | +-------------------------+---------+
## Значение Qcache_hits должно быть очень большим
Для очистки кеша:
FLUSH QUERY CACHE
Сообщить об опечатке
Текст, который будет отправлен нашим редакторам: