Очистить кеш запросов MySQL без перезапуска сервера

162

Есть ли способ очистить кэш запросов MySQL без перезагрузки сервера MySQL?

Mahoor13
источник

Ответы:

218

Я верю, что вы можете использовать ...

RESET QUERY CACHE;

... если пользователь, с которым вы работаете, имеет права на перезагрузку. Кроме того, вы можете дефрагментировать кеш запросов через ...

FLUSH QUERY CACHE;

Обратитесь к разделу « Состояние и обслуживание кэша запросов» в руководстве по MySQL для получения дополнительной информации.

Джон Паркер
источник
27
RESET QUERY CACHE очистит кеш запросов, но нуждается в привилегиях RELOAD. FLUSH QUERY CACHE НЕ очищает кеш запроса, он просто дефрагментирует его, оставляя результаты кэшированного запроса на месте
carpii
Это действительно помогло. Мы используем NodeJS с MySQL, используя пул с 10 подключениями. Мы столкнулись с проблемой записи данных одним соединением и чтения другим, и они сильно кэшировались. Этот, кажется, очень помогает. Thx,
psuhas
2
По какой-то причине на RESET QUERY CACHEсамом деле это не для меня понятно. Также перезапуск сервера MySQL не помогает. Явное SELECT SQL_NO_CACHEделает свое дело, но нет RESET QUERY CACHE. sync && echo 3 | sudo tee /proc/sys/vm/drop_cachesот другого ответа тоже не помогло.
Янис Элмерис
1
И перезагрузка машины тоже не помогла.
Янис Элмерис
45

В моей системе (Ubuntu 12.04) я обнаружил, RESET QUERY CACHEи даже перезапустить сервер MySQL недостаточно. Это было связано с кэшированием диска памяти .
После каждого запроса я очищаю дисковый кеш в терминале:

sync && echo 3 | sudo tee /proc/sys/vm/drop_caches

и затем сбросьте кеш запросов в клиенте MySQL:

RESET QUERY CACHE;
Лешек
источник
2
Обратите внимание, что «Кэш запросов» в MySQL не является общим кешем страниц / блоков. Это кеш результатов запросов. Не всегда полезно - мы не используем его. dev.mysql.com/doc/refman/5.6/en/query-cache.html
phil_w
@phil_w есть ли способ сбросить кеш страниц / блоков, которые использует mysql, без перезапуска mysql и очистки кеша (linux) ОС?
matanster