Назад | Перейти на главную страницу

Что такое MySQL Query Cache и когда его реализовать?

На нашем текущем сервере MySQL кеш запросов включен.

Qchache_hits: 31913 
Qchache_inserts: 50959
Qchache_lowmem_prunes: 9320
Qchache_not_chached: 209320
Qchache_queries_in_chace: 986

com_update: 0
com_delete: 0
com_Select: 10

Я не совсем понимаю кеш запросов - я сейчас читаю о нем и пытаюсь понять его.

В нашей базе данных хранятся данные инвентаризации, данные клиентов, данные сотрудников, данные о продажах и т. Д. Запрос очень редко выполняется более одного раза. Возможность выполнения запроса дважды - это двойной просмотр конкретной информации о продажах. Но в основном все в нашей системе постоянно меняется. Он всегда обновляется, удаляется, внедряется, и я не могу представить себе, как пользователи выполняют один и тот же запрос дважды в течение недели.

Нужно ли мне вообще включать кеш запросов? Я предполагаю, что вставки означают, что было добавлено 51 тыс. Записей, но только 986 ​​из них сохраняются?

Можно ли обновить кеш и наблюдать за ним в течение недели и проверять, к скольким из кешированных запросов обращаются, возможно, еженедельно, чтобы увидеть, действительно ли это дает какие-либо преимущества?

Любая помощь / руководство по этому поводу приветствуется, спасибо

Да, добавлено 51к записей, сейчас там только 986. Таким образом, было примерно 50 тыс. записей, которые были добавлены в кеш, но их больше нет, 9 тыс. из них из-за нехватки памяти в кеше, а остальные из-за вставки / обновления недействительных записей кеша. Com_select - это параметр, который полезно знать при попытке решить, получаете ли вы выгоду. Но на самом деле это в основном зависит от того, какие запросы кэшируются.

Если вы выполняете оператор select, который, как вы уверены, не получит преимуществ от кэширования, вы можете добавить SQL_NO_CACHE в статус выбора, см. документация здесь.

Рекомендую прочитать Эта статья (и этот блог в целом).