Начиная с версии 4.0.1 сервер MySQL
снабжен кэшем запросов. В процессе
работы кэш запросов хранит текст
запроса SELECT вместе с
соответствующим результатом,
который посылался клиенту. При
получении другого идентичного
запроса сервер извлечет результаты
из кэша запросов, а не анализировать
и выполнять снова тот же самый
запрос.
Кэш запросов особенно полезен в средах, где (некоторые) таблицы не обновляются слишком часто и присутствует много идентичных запросов. Эта ситуация типична для многих веб-серверов с обширным активным информационным наполнением.
Ниже приведены некоторые данные функционирования для кэша запросов (они получены во время работы тестового комплекта MySQL под Linux Alpha 2x500 МГц с 2Гб ОЗУ и 64-мегабайтным кэшем запросов):
Если все производимые запросы являются простыми (такими как выбор строки из таблицы с одной строкой), но различаются настолько, что не могут быть кэшированы, непроизводительные затраты при активном состоянии кэша запросов составляют 13%. Это можно было бы рассматривать как сценарий наиболее неблагоприятного варианта. Однако в реальной жизни запросы более сложны, чем приведенный простой пример, так что непроизводительные затраты обычно значительно ниже.
Поиск строки в таблице с одной строкой происходит на 238% быстрее. Можно рассматривать эту величину, как близкую к минимальному увеличению быстродействия, ожидаемого при кэшировании запроса.
Если вы хотите запретить кеш
запросов, установите переменную
query_cache_size в 0.
Запрещение кеша запросов не
создает лишних перегрузок для
сервера. Вы можете целиком
исключить код кеша запросов из
сервера путем указания при
компиляции опции
--without-query-cache в
configure.
This is a translation of the MySQL Reference Manual that can be found at dev.mysql.com. The original Reference Manual is in English, and this translation is not necessarily as up to date as the English version.
© 1995-2005 MySQL AB. All rights reserved.
