AWS講座

[AWS] RDSでslow queryを出力させる方法

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ダッシュボードページへ遷移します。
ページが表示されたら、左カラムの[パラメータグループ]リンクをクリックしてください。

変更したいパラメータ名を[パラメータ]タブの[フィルタ]に入力すると、マッチするパラメータが表示されます。

rds_param01

[パラメータ]のボタンの説明
編集のキャンセル
変更内容を破棄して元の画面に戻ります
変更のプレビュー
変更した値の一覧を表示します(反映はしません)
変更の保存
変更した値を反映して元の画面に戻ります

必要な項目の値を変更したら[変更の保存]ボタンをクリックして設定を保存します。

これでパラメータの変更が完了です。同じ方法でlog_output、long_query_time、min_examined_row_limitを設定してください。

ここで変更した設定はRDSのインスタンスが再起動するまで反映されません。
インスタンスを明示的に再起動させなくても、1週間に1回発生する[メンテナンスウィンドウ]のタイミングで再起動が行われるので、設定はその際に反映されます。

[メンテナンスウィンドウ]はRDSページの左カラム[インスタンス]リンクをクリックし、確認したいインスタンスを右クリックします。
メニューにある[詳細を表示]をクリックするとインスタンスの詳細が表示されます。

rds_param02

Maintenance Window: sat:14:30-sat:15:00

ここでの時間はUTCですので、日本の場合は9時間を足した時間がメンテナンスが行われる時間になります。

記録されたslow queryは下記のようなSQLで確認できます。

SELECT * FROM mysql.slow_log;

関連記事