当サイトのDB最適化しようとしたものの

当サイトはWordpressを利用しているわけですが、サイトの表示速度がちょっと遅いと感じています。そこでDBを最適化して高速化にチャレンジしてみました。

まずは現状を把握
とりあえず手元のマシンからサイトが表示されるスピードをcurlを使い測定しました。

$ curl http://blog.nogisawa.net > /dev/null
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 40338 0 40338 0 0 35392 0 --:--:-- 0:00:01 --:--:-- 36939

MySQLのslow_query_logをチェック
MySQLが本当に遅いかどうかを判別するためにsloq_query_logを利用しました。今回はクエリーの実行に1秒以上かかっているものがあるかどうかで判断します。


mysql> SET GLOBAL slow_query_log = 'ON';
mysql> SET GLOBAL long_query_time = 1;

ログの出力先は下記のコマンドで確かめられます。
mysql> show variables like 'slow%';

このログを監視しながら、もう一度クライアントマシンからcurlを実行します。

サーバー側ではログを監視する
tail -f /var/run/mysqld/mysqld-slow.log

クライアント側ではトップページをリクエスト
curl http://blog.nogisawa.net > /dev/null

トップページをリクエストしてサーバー側のログに何か追加されるのであれば、1秒以上かかるクエリーが存在する事になります。もしこれで何も表示されない場合、ong_query_timeを0.1や0.01、0.001などに設定して様子を見てみましょう。

結果
調べてみたところ当サイトのMySQLでは0.1秒以上の時間を要するクエリーは存在せず、MySQLがネックになっていない事が判明しました。
ちなみにこのDBではquery_cache_sizeが0(無効)になっていたので、16MBぐらいに設定して様子を見て見ましたが、元々ネックになっていないので表示速度の向上は観測できず…。
次はApacheやPHPを疑ってみます。

※設定した各パラメーターを戻すのを忘れずに。再起動した時に大変な事になります。