Как действительно очистить кеш в MYSQL? - PullRequest
0 голосов
/ 06 ноября 2019

Я хотел бы выполнить один и тот же запрос несколько раз, чтобы увидеть, сколько времени это займет без помощи кеш-памяти. Запуск команды RESET QUERY CACHE, похоже, не работает, потому что запрос занимает очень мало времени при втором запуске, даже после сброса кэша. Чего мне не хватает?

Ответы [ 3 ]

1 голос
/ 06 ноября 2019

Вы можете использовать SQL_NO_CACHE в запросе SELECT.

https://dev.mysql.com/doc/refman/5.5/en/query-cache-in-select.html

Имейте в виду, что кеш запросов был удален в более поздних версиях MySQL.

В зависимости от механизма хранения (например, innodb) данные таблицы загружаются в память как часть пула буферов. В этой части вы не можете реально контролировать, какие таблицы загружать, а какие не загружать (или, по крайней мере, нелегко).

1 голос
/ 06 ноября 2019

Два «кэша» влияют на запрос. Query Cache и Buffer Cache(buffer_pool with InnoDB and key_buffer with MyISAM). Query cache влияет гораздо больше, чем Buffer Cache, поскольку он кэширует результат вашего запроса, поэтому тот же запрос больше не будет выполняться.

Чтобы избежать Query Cache, использование SQL_NO_CACHE - хорошая идея, иВы можете отключить Query Cache в my.cnf и перезапустить mysql.

Buffer cache управляется mysql для кэширования данных в памяти, чтобы ваш запрос не считывал данные с диска (SSD или HDD). Если вы хотите очистить его, попробуйте установить «Буферный кэш» достаточно маленьким и заполнить его другими данными (используйте SELECT).

1 голос
/ 06 ноября 2019

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...