Автор
Тема:

Кэш запросов к бд MySQL

 (Прочитано 497 раз)

saitikdev

  • Administrator
  • Неплохо разбираюсь в сайтах
  • *****
  • Сообщений: 2073
  • Karma: +1000/-0
    • Просмотр профиля
Кэш запросов к бд MySQL
« : Июля 12, 2022, 11:03:27 am »
Кэш запросов к бд MySQL - позволяет ускорить работу с базой данных за счет использования кэширования.

И как вы думаете почему на большинстве хостингов оно вообще отключено?))

Итак в бд вводим запрос для проверки работает ли кэш вообще в вашей бд
show variables like 'have_query_cache';
Если в таблице будет Yes то значит работает!
(как это сделать на серверах Ubuntu смотрите тут https://www.8host.com/blog/optimizaciya-raboty-mysql-s-pomoshhyu-kesha-zaprosov-v-ubuntu-18-04/)

Настройка кэширования - эти параметры можно определить командой:
show variables like 'query_cache_%' ;
+------------------------------+----------+
| Variable_name                | Value    |
+------------------------------+----------+
| query_cache_limit            | 1048576  |
| query_cache_min_res_unit     | 4096     |
| query_cache_size             | 16777216 |
| query_cache_type             | OFF      |
| query_cache_wlock_invalidate | OFF      |
+------------------------------+----------+
5 rows in set (0.00 sec)

выйдет что то такое, где
Значение query_cache_limit определяет максимальный размер отдельных результатов запроса, которые могут быть кэшированы. Значение по умолчанию составляет 1 048 576 байт, что эквивалентно 1 МБ.

MySQL не обрабатывает кэшированные данные целиком; он обрабатывает их блоками. Минимальный объем памяти, выделяемый каждому блоку, определяется переменной query_cache_min_res_unit. Значение по умолчанию составляет 4096 байт, или 4 КБ.

Переменная query_cache_size контролирует общий объем памяти, выделенной для кэша запросов. Если в ней установлено значение 0, это означает, что кэш запросов отключен. В большинстве случаев по умолчанию может быть установлено значение 16 777 216 (около 16 МБ). Кроме того, следует иметь в виду, что query_cache_size требует как минимум 40 КБ для размещения своих структур. Выделенное здесь значение выравнивается по ближайшему 1024-байтовому блоку – то есть фактическое значение может немного отличаться от установленного вами.

MySQL определяет запросы к кэшу, изучая переменную query_cache_type. Значение 0 или OFF отключает кэширование или извлечение кэшированных запросов. Вы также можете установить значение 1, чтобы включить кэширование для всех запросов, кроме тех, которые начинаются с SELECT SQL_NO_CACHE. Значение 2 позволяет кэшировать только те запросы, которые начинаются с SELECT SQL_CACHE.

Переменная query_cache_wlock_invalidate решает, должен ли MySQL извлекать результаты из кэша, если используемая в запросе таблица заблокирована. Ее значением по умолчанию является OFF.

--
query_cache_limit - не кэшировать результаты, большие, чем указано (по умолчанию 1Мб).
query_cache_size - память, выделенная для хранения результатов старых запросов. Если равно 0, то кэширование запроса блокируется (по умолчанию).
query_cache_startup_type - можно установить следующие (только числовые) значения:

Опция   Описание
0   OFF (``ВЫКЛЮЧЕНО''), результаты не кэшировать и не извлекать
1   ON (``ВКЛЮЧЕНО''), кэшировать все результаты, за исключением запросов SELECT SQL_NO_CACHE ...
2   DEMAND (``ПО ТРЕБОВАНИЮ''), кэшировать только запросы SELECT SQL_CACHE ...
Внутри потока (соединения) можно изменить функционирование кэша запросов по сравнению с установленным по умолчанию. Синтаксис следующий:

SQL_QUERY_CACHE_TYPE = OFF | ON | DEMAND 
SQL_QUERY_CACHE_TYPE = 0   | 1  | 2

Опция   Описание
0 или OFF   Результаты не кэшировать и не извлекать.
1 или ON   Кэшировать все результаты за исключением запросов SELECT SQL_NO_CACHE ...
2 или DEMAND   Кэшировать только запросы SELECT SQL_CACHE ...
По умолчанию выражение SQL_QUERY_CACHE_TYPE зависит от величины переменной query_cache_startup_type, установленной при создании данного потока.


« Последнее редактирование: Октября 01, 2022, 04:26:17 pm от saitikdev »
Качественное SeoСео консультации - от специалиста с опытом более 10 лет | Рекомендуем - Лучший хостинг

 

Новые темы IT

Новые темы по Маркетингу