MySQLクエリキャッシュのクリア方法

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になっているので、これにて、正しくリセットできている。
ちょっと、キャッシュサイズ大きすぎるかな…。

Leave a Reply

Your email address will not be published. Required fields are marked *