Spec-Zone .ru
спецификации, руководства, описания, API

8.9.3. MySQL Query Cache

8.9.3.1. Как Кэш Запроса Работает
8.9.3.2. Кэш запроса SELECT Опции
8.9.3.3. Конфигурация Кэша запроса
8.9.3.4. Состояние Кэша запроса и Обслуживание

Кэш запроса хранит текст a SELECT оператор вместе с соответствующим результатом, который был отправлен клиенту. Если идентичный оператор получается позже, сервер получает следствия кэша запроса вместо того, чтобы анализировать и выполнить оператор снова. Кэш запроса совместно используется среди сеансов, таким образом, набор результатов, сгенерированный одним клиентом, может быть отправлен в ответ на тот же самый запрос, выпущенный другим клиентом.

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

Кэш запроса не возвращает устаревшие данные. Когда таблицы изменяются, любые соответствующие записи в кэше запроса сбрасываются.

Отметить

Кэш запроса не работает в среде, где у Вас есть многократные mysqld серверы, обновляющие то же самое MyISAM таблицы.

Кэш запроса используется для готовых операторов при условиях, описанных в Разделе 8.9.3.1, "Как Кэш Запроса Работает".

Отметить

С MySQL 5.6.5 кэш запроса не поддерживается для разделенных таблиц, и автоматически отключается для запросов, включающих разделенные таблицы. Кэш запроса не может быть включен для таких запросов. (Ошибка #53775)

Некоторые данные о производительности для кэша запроса следуют. Эти результаты были сгенерированы, выполняя комплект сравнительного теста MySQL на Альфа-системе 2×500 МГц Linux с RAM на 2 Гбайт и кэшем запроса 64 МБ.

Чтобы отключить кэш запроса при запуске сервера, установите query_cache_size системная переменная к 0. Отключая код кэша запроса, нет никаких значимых издержек.

Кэш запроса предлагает потенциал для существенного улучшения производительности, но не предполагайте, что это сделает так при всех обстоятельствах. С некоторыми конфигурациями кэша запроса или рабочими нагрузками сервера, Вы могли бы фактически видеть снижение производительности:

Чтобы проверить, что включение кэшу запроса выгодно, протестируйте работу своего сервера MySQL с кэшем, включенным и отключенным. Затем повторно тестируйте периодически, потому что эффективность кэша запроса может измениться, как рабочая нагрузка сервера изменяется.