RDS for MySQLでパフォーマンスチューニングを行う上で必要なスロークエリログの出力を有効化する方法について案内します。パフォーマンスチューニングを行う上で、Performance Insightsも有効な手段ですが、利用できるインスタンスクラスに制限があることと、条件によって再起動が必要となります。
スロークエリログとは
公式ドキュメントより
スロークエリーログは、実行に長い時間がかかっているため最適化の候補となるクエリーを見つけるために使用できます。
有効化方法
1秒を超えるクエリを出力する際には、以下のパラメータを変更することによってスロークエリログをCloudWatch Logsへ出力することが可能です。なお、long_query_timeパラメータは小数点を利用することによってミリ秒単位の指定を行うこともできます。
log_output = TABLE → FILE
long_query_time = 1
slow_query_log = 1
設定したログは以下のように設定タブにあるスロークエリをクリックすることによって参照することができます。
設定にあたり、再起動が許容されているインスタンスであれば、インスタンスにアタッチされているパラメータグループを複製した上で、パラメータを変更したパラメータグループを対象のインスタンスにアタッチするという方法を取ることもできます。
この方法であれば切り戻しが容易です。
なお、パラメータグループには比較機能があるため、パラーメータを変更した後は、複製元のパラメータと比較して上記以外の変更箇所がないことの確認を行うことが望ましいです。
また、再起動が許容されていないインスタンスの場合には、既存のパラメータグループを複製してバックアップを取得した上で、アタッチ済みのパラメータグループを変更することで即時反映が可能となります。
クエリが遅い状態を再現して改めてパラメータ値を元に戻すという方法で対応ができます。
元に戻す場合には、デフォルト値に戻すというボタンがあるので、活用ください。