サーバーを再起動せずにMySQLクエリキャッシュをクリアする


162

mySQLサーバーを再起動せずにmysql クエリキャッシュクリアする方法はありますか?

回答:


218

私はあなたが使用できると信じています...

RESET QUERY CACHE;

...実行しているユーザーにリロード権限がある場合。または、クエリキャッシュを最適化することもできます...

FLUSH QUERY CACHE;

詳細については、MySQLマニュアルの「クエリキャッシュのステータスとメンテナンス」セクションを参照してください。


27
RESET QUERY CACHEはクエリキャッシュをクリアしますが、RELOAD権限が必要です。FLUSH QUERY CACHEはクエリキャッシュをクリアしません。単にキャッシュをデフラグして、キャッシュされたクエリ結果を残します
carpii

これは本当に役に立ちました。接続数10のプールを使用して、MySQLでNodeJSを使用しています。ある接続によって書き込まれ、別の接続によって読み取られるデータの問題に直面しており、大量のキャッシュが行われていました。これは大いに役立つようです。Thx、
2016年

2
何らかの理由で、RESET QUERY CACHE実際には私はそれをクリアしません。また、MySQLサーバーの再起動は役に立ちません。明示SELECT SQL_NO_CACHEはトリックを行いますが、行いませんRESET QUERY CACHEsync && echo 3 | sudo tee /proc/sys/vm/drop_caches他の答えからも助けにはなりませんでした。
ジャニスElmeris

1
また、マシンの再起動も役に立ちませんでした。
ジャニスElmeris

45

私のシステム(Ubuntu 12.04)では、RESET QUERY CACHEmysqlサーバーを見つけて再起動するだけでは不十分です。これは、メモリディスクのキャッシュが原因でした。
各クエリの後で、ターミナルのディスクキャッシュを消去します。

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を再起動して(linux)OSキャッシュをクリアせずに、mysqlが使用するページ/ブロックのキャッシュをリセットする方法はありますか?
matanster 2014

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.