Pull to refresh

В MySQL Oracle в минорной версии отключили кеширование запросов по умолчанию

В минорном релизе 5.6.8 MySQL Oracle, который был в ноябре, изменили дефолтное значение опции query_cache_type.

Эта опция появилась 12 лет назад в MySQL 4.0.3 и всегда имела значение 1.
Если вы читали статью «What's New in MySQL 5.6» — там этого изменения, конечно, нет. Если опция у вас прямо не прописана в /etc/my.cnf, ваши приложения могут начать работать медленнее.


Часто рекомендуют писать приложения в расчете на выключенный кеш запросов в MySQL, и это правильно. Вместо кеша результатов запросов Mysql эффективнее использовать в приложении специализированные средства вроде memcached или redis. Однако, мне нужно поддерживать приложения, полученные «в наследство» от предыдущих разработчиков, и сайты на основе пакетов phpBB, Redmine, Drupal, в которых разница в скорости работы при отключении заметна.

Я потратил пол-дня на профилирование чужого приложения прежде чем заметил
mysql> show STATUS like '%cache%';
+--------------------------------+---------+
| Variable_name | Value |
+--------------------------------+---------+
| Qcache_free_memory | 33554432|
| Qcache_hits | 0 |
| Qcache_inserts | 0 |
| Qcache_not_cached | 554142 |
| Qcache_queries_in_cache | 0 |



Будьте внимательны при обновлении базы.
Tags:
Hubs:
You can’t comment this publication because its author is not yet a full member of the community. You will be able to contact the author only after he or she has been invited by someone in the community. Until then, author’s username will be hidden by an alias.