MySQL のクエリキャッシュを有効にして WordPress を高速化する

2010-4-20 10:00
このエントリーをはてなブックマークに追加

WordPress が重くなる原因はいろいろ考えられますが、その一つにバックのデータベースである MySQL に負荷がかかっている可能性があります。このサイトも負荷がかかっているときに top コマンドで調べてみると、mysql が CPU 使用率と実行時間が高い傾向がありました。

そこで /etc/my.cnf を編集して MySQL のクエリーキャッシュを有効にしてみます。これは基本的にサーバの管理者しかできないことなので、レンタルサーバをお使いの方はできないと思います。

# /etc/my.cnf
query_cache_limit=1M
query_cache_min_res_unit=4k
query_cache_size=32M
query_cache_type=1

設定したら MySQL を再起動します。

クエリーキャッシュが有効に働いているかどうかは、mysql にコンソールからログインして次の SQL を実行します。

mysql> SHOW VARIABLES LIKE "query_cache_%";
+------------------------------+----------+
| Variable_name                | Value    |
+------------------------------+----------+
| query_cache_limit            | 1048576  |
| query_cache_min_res_unit     | 4096     |
| query_cache_size             | 33554432 |
| query_cache_type             | ON       |
| query_cache_wlock_invalidate | OFF      |
+------------------------------+----------+

query_cache_size が 0 の場合は有効になっていません。

mysql> show status like 'Qcache%';
+-------------------------+----------+
| Variable_name           | Value    |
+-------------------------+----------+
| Qcache_free_blocks      | 285      |
| Qcache_free_memory      | 32069824 |
| Qcache_hits             | 11365    |
| Qcache_inserts          | 7335     |
| Qcache_lowmem_prunes    | 0        |
| Qcache_not_cached       | 1307     |
| Qcache_queries_in_cache | 451      |
| Qcache_total_blocks     | 1218     |
+-------------------------+----------+
8 rows in set (0.00 sec)

キャッシュされていると変更になったデータはどうなるのか、という心配はありますが、update や insert などでデータに変更が加えられた場合には、自動的にフラッシュされるらしいので気にせず使えますね。

コメントはまだありません

No comments yet.

Sorry, the comment form is closed at this time.

33 queries. HTML convert time: 0.552 sec. Powered by WordPress. Valid XHTML
Copyright © 2003-2017 @ futuremix.org ログイン