MySQL Query Cache(Кеширование запросов)

MySQL Query Cache(Кеширование запросов) Начиная с версии 4.0.1 сервер MySQL снабжен кэшем запросов. В процессе работы кэш запросов хранит текст запроса SELECT вместе с соответствующим результатом, который посылался клиенту. При получении другого идентичного запроса сервер извлечет результаты из кэша запросов, а не анализировать и выполнять снова тот же самый запрос.
Кэш запросов особенно полезен в средах, где (некоторые) таблицы не обновляются слишком часто и присутствует много идентичных запросов. Эта ситуация типична для многих веб-серверов с обширным активным информационным наполнением. Ниже приведены некоторые данные функционирования для кэша запросов (они получены во время работы тестового комплекта MySQL под Linux Alpha 2x500 МГц с 2Гб ОЗУ и 64-мегабайтным кэшем запросов): Если все производимые запросы являются простыми (такими как выбор строки из таблицы с одной строкой), но различаются настолько, что не могут быть кэшированы, непроизводительные затраты при активном состоянии кэша запросов составляют 13%. Это можно было бы рассматривать как сценарий наиболее неблагоприятного варианта. Однако в реальной жизни запросы более сложны, чем приведенный простой пример, так что непроизводительные затраты обычно значительно ниже. Поиск строки в таблице с одной строкой происходит на 238% быстрее. Можно рассматривать эту величину, как близкую к минимальному увеличению быстродействия, ожидаемого при кэшировании запроса. Если вы хотите запретить кеш запросов, установите переменную query_cache_size в 0. Запрещение кеша запросов не создает лишних перегрузок для сервера. Вы можете целиком исключить код кеша запросов из сервера путем указания при компиляции опции --without-query-cache в configure. Для кэша запросов в MySQL добавляется несколько системных переменных для mysqld, которые могут быть установлены в конфигурационном файле или из командной строки при запуске mysqld. query_cache_limit Не кэшировать результаты, большие, чем указано (по умолчанию 1Мб). query_cache_size Память, выделенная для хранения результатов старых запросов. Если равно 0, то кэширование запроса блокируется (по умолчанию). Указывается в байтах. query_cache_type Можно установить следующие (только числовые) значения: Опция Описание 0 OFF (``ВЫКЛЮЧЕНО''), результаты не кэшировать и не извлекать 1 ON (``ВКЛЮЧЕНО''), кэшировать все результаты, за исключением запросов SELECT SQL_NO_CACHE… 2 DEMAND (``ПО ТРЕБОВАНИЮ''), кэшировать только запросы SELECT SQL_CACHE… Внутри потока (соединения) можно изменить функционирование кэша запросов по сравнению с установленным по умолчанию. Синтаксис следующий: QUERY_CACHE_TYPE = OFF | ON | DEMAND QUERY_CACHE_TYPE = 0 | 1 | 2Опция Описание 0 или OFF Результаты не кэшировать и не извлекать. 1 или ON Кэшировать все результаты за исключением запросов SELECT SQL_NO_CACHE… 2 или DEMAND Кэшировать только запросы SELECT SQL_CACHE ... Синтаксис:
mysql> SET GLOBAL query_cache_size = 40000; Query OK, 0 rows affected, 1 warning (0.00 sec) mysql> SHOW WARNINGS\G *************************** 1. row *************************** Level: Warning Code: 1282 Message: Query cache failed to set size 39936; new query cache size is 0 mysql> SET GLOBAL query_cache_size = 41984; Query OK, 0 rows affected (0.00 sec) mysql> SHOW VARIABLES LIKE 'query_cache_size'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | query_cache_size | 41984 | +------------------+-------+
  • +8
  • 26 мая 2008, 14:11
  • BIT

Комментарии (13)

RSSсвернуть /развернуть
+
0
bully
avatar

DoSpeX

  • 26 мая 2008, 14:18
+
0
niponyal
avatar

petruxa15

  • 26 мая 2008, 14:18
+
0
crazy
avatar

Sairus

  • 26 мая 2008, 14:32
+
0
Да все понятно. Только сомнительно это кеширование.
avatar

Ango

  • 26 мая 2008, 15:00
+
0
кому надо тот понял smile
avatar

up

  • 26 мая 2008, 15:14
+
0
кем одобрено? :)
avatar

Booyaka

  • 26 мая 2008, 15:25
+
0
bukv
avatar

naruto

  • 26 мая 2008, 17:28
+
0
Ы! Модные новости пошли 65
avatar

sLaWa

  • 26 мая 2008, 17:29
+
0
оЧЕНЬ bukv
avatar

Daredevil

  • 26 мая 2008, 18:37
+
0
bukv
avatar

DJ_xXx

  • 27 мая 2008, 01:23
+
0
Бит за образование народа взялся))
avatar

KapToxa

  • 27 мая 2008, 17:30
+
0
0258kurim
avatar

Diaman21

  • 30 мая 2008, 00:18
+
0
bukv
avatar

Looking

  • 03 июня 2008, 20:25

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.
Валидный HTMLВалидный CSSRambler's Top100