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.