[WordPress] MySQLの最適化、クエリキャッシュで管理画面を早くする

MySQLの最適化、クエリキャッシュでもっさりとしたWordPressを早くすることができます。

プラグインに似たようなものがありますが、こちらのほうがDB直接の設定なのでたぶん早くなります。

スポンサーリンク

MySQL テーブルの最適化

MySQLのMyISAM 型テーブルは、レコードの追加や削除を繰り返しているとデータ処理が重くなるため、 optimize table という SQL で最適化する。

show databases;
use データベース名

 OPTIMIZE TABLE `wp_comments` , `wp_links` , `wp_options` , `wp_postmeta` , `wp_posts` , `wp_terms` , `wp_term_relationships` , `wp_term_taxonomy` , `wp_usermeta` , `wp_users`

クエリキャッシュを設定しておけば SELECT 文などの結果をキャッシュしてレスポンスをあげることができます。ブログなどは投稿以外はほとんどのリクエストが SELECT なので有効かと思います。

MySQLのクエリキャッシュを使用すれば、ワードプレスの管理画面やデータベースへのアクセスが早くなると聞いたので設定してみました。

MySQL(バージョン 4.0.1以降)にはクエリキャッシュの機能があり、これをONにするとクエリ結果キャッシュできます。

現在クエリキャッシュが有効かどうかを判定

まず、mysqlにログインし、下記の湖面度を実行

show variables like 'query_cache_%';

+——————————+———+ | Variable_name | Value | +——————————+———+ | query_cache_limit | 1048576 | | query_cache_min_res_unit | 4096 | | query_cache_size | 0 | | query_cache_type | ON | | query_cache_wlock_invalidate | OFF | +——————————+———+ 5 rows in set (0.00 sec)

【query_cache_size】が【0】なのでクエリキャッシュが有効でない状況になっています。

2.クエリキャッシュを有効にする /etc/my.cnf の [mysqld] の項目にクエリキャッシュに関する記述を追加します。

[mysqld]

(query_cache_limit)これより大きい結果はキャッシュしない

(query_cache_min_res_unit) 4K が推奨値

(query_cache_size)クエリキャッシュに割り当てるメモリ(Bytes)

(query_cache_type) 0:OFF 1:ON 2:DEMAND

query_cache_limit=1M query_cache_min_res_unit=4k query_cache_size=24M query_cache_type=1

そして、mysqlを再起動します。

/etc/init.d/mysqld restart

キャッシュ状態を確認する。

SHOW STATUS LIKE 'Qcache%';

mysql> SHOW STATUS LIKE ‘Qcache%'; +————————-+———-+ | Variable_name | Value | +————————-+———-+ | Qcache_free_blocks | 2 | 空きブロック数 | Qcache_free_memory | 24213616 | 空きメモリのサイズ (バイト) | Qcache_hits | 468 | クエリのヒット数 | Qcache_inserts | 710 | キャッシュに入れられたクエリの数 | Qcache_lowmem_prunes | 0 | メモリが足りないために削除された数 | Qcache_not_cached | 21 | キャッシュに入れられなかったクエリの数 | Qcache_queries_in_cache | 346 | キャッシュ内のクエリの数 | Qcache_total_blocks | 331 | ブロックの領域の合計 +————————-+———-+ 8 rows in set (0.00 sec)

【Qcache_lowmem_prunes】メモリが足りないために削除された数を 管理すれば、キャッシュサイズをうまくコントロールすることができます。

まとめ

クエリキャッシュを活用すると、管理画面が確かに多少早くなったような気がします。

メモリの使用状況もそんなにかわっていないので、おすすめの設定かと思います。

スポンサーリンク

Leave a Reply