MySQLクエリをキャッシュしている場合に、パフォーマンステスト等で一旦リセットしたい時がある。
こういった時には、RESET QUERY CACHE; コマンドを使えばよい。
現在のキャッシュ状況を確認
mysql> SHOW STATUS LIKE'Qcache%'; +--------------------------------+----------+ | Variable_name | Value | +--------------------------------+----------+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 24743152 | | Qcache_hits | 1924 | | Qcache_inserts | 904 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 209 | | Qcache_queries_in_cache | 220 | | Qcache_total_blocks | 500 | +--------------------------------+----------+
キャッシュクリア
mysql> RESET QUERY CACHE; Query OK, 0 rows affected (0.00 sec)
再度、キャッシュ状況を確認してみる
mysql> SHOW STATUS LIKE'Qcache%'; +--------------------------------+----------+ | Variable_name | Value | +--------------------------------+----------+ | Qcache_free_blocks | 1 | | Qcache_free_memory | 25157000 | | Qcache_hits | 1924 | | Qcache_inserts | 904 | | Qcache_lowmem_prunes | 0 | | Qcache_not_cached | 209 | | Qcache_queries_in_cache | 0 | | Qcache_total_blocks | 1 | +--------------------------------+----------+ 20 rows in set (0.00 sec)
Qcache_total_blocksの値が500→1になっているので、これにて、正しくリセットできている。
ちょっと、キャッシュサイズ大きすぎるかな…。