0

MySQL チューニングをする為にスロークエリ設定をしよう。

スロークエリログとは?
スロークエリログ (Slow query log) は、MySQL で出力できるログの種類の1つです。
SQLの実行時間が指定した時間よりもかかってしまった SQL を全て出力することができます。
これにより、アプリケーション構築時や本番運用時にパフォーマンスのボトルネックとなっているSQLを発見するのに大いに役に立ちます。

[mysqld]
(中略)
slow_query_log=ON
long_query_time=0.5
slow_query_log_file=slow_query.log
log-queries-not-using-indexes

※スロークエリログを有効にするオプションは、MySQL 5.0までは log_slow_query という名称でしたが、
MySQL 5.1からは slow_query_log というオプション名に変更になっています。 
ご利用の MySQL Server のバージョンにご注意ください。

上の例では、SQLの実行に0.5秒以上かかったクエリを出力するように設定しています。
long_query_time というオプションで時間(秒)を指定しています。
slow_query_log_file オプションでログファイル名を出力し、上記の説明の通り log-queries-not-using-indexes オプションでインデックスを利用しなかった SQL も出力するように設定しています。
これでパフォーマンスのボトルネックになっている SQL がログに出力されるようになります。

注意
注意事項としては、ログファイルを吐くということはファイルI/Oが発生する。
当然ながら MySQL のパフォーマンスは落ちます。
運用してある程度安定したらログの出力をやめるなど、
スロークエリログを吐かせる運用ルールなどを決定しておくのが良いと思います。

以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です