RDSのデフォルト設定ではslow queryを出力しません。
slow queryを出力させるには、AWSマネジメントコンソールでParameter Groupsの設定を行います(RDSではmy.confを直接編集する代わりに、AWSマネジメントコンソールを使って設定を行います)。
これから行う設定は、my.cnfに以下の設定をしたのと同様です。
[mysqld] # slow queryを有効 slow_query_log = ON # mysql.slow_logに出力 log_output = TABLE # 実行に5秒以上かかったクエリを記録 long_query_time = 5.000 # 100行以上読み込んだクエリを記録 min_examined_row_limit=100
設定の変更はAWSマネジメントコンソールからRDSダッシュボードページへ遷移します。
ページが表示されたら、左カラムの[パラメータグループ]リンクをクリックしてください。
変更したいパラメータ名を[パラメータ]タブの[フィルタ]に入力すると、マッチするパラメータが表示されます。
[パラメータ]のボタンの説明
- 編集のキャンセル
- 変更内容を破棄して元の画面に戻ります
- 変更のプレビュー
- 変更した値の一覧を表示します(反映はしません)
- 変更の保存
- 変更した値を反映して元の画面に戻ります
必要な項目の値を変更したら[変更の保存]ボタンをクリックして設定を保存します。
これでパラメータの変更が完了です。同じ方法でlog_output、long_query_time、min_examined_row_limitを設定してください。
ここで変更した設定はRDSのインスタンスが再起動するまで反映されません。
インスタンスを明示的に再起動させなくても、1週間に1回発生する[メンテナンスウィンドウ]のタイミングで再起動が行われるので、設定はその際に反映されます。
[メンテナンスウィンドウ]はRDSページの左カラム[インスタンス]リンクをクリックし、確認したいインスタンスを右クリックします。
メニューにある[詳細を表示]をクリックするとインスタンスの詳細が表示されます。
Maintenance Window: sat:14:30-sat:15:00
ここでの時間はUTCですので、日本の場合は9時間を足した時間がメンテナンスが行われる時間になります。
記録されたslow queryは下記のようなSQLで確認できます。
SELECT * FROM mysql.slow_log;