RDSのデフォルトではslowlogを出すような設定にはなっていないので出す場合は別途設定が必要です
マネジメントコンソールのparameter groupsから対象RDSに適用されているパラメータグループを編集します
入力フォームが用意されているので変更します
パラメータ
log_queries_not_using_indexes
- engine_default(OFF) -> 1
indexを使用しないクエリを記録する
slow_query_log
- engine_default(OFF) -> 1
slowqueryログを出力
long_query_time
- 0 -> 3
秒数を指定
log_output
TABLE,FILE,NONEと選択できる
反映
dynamicな値であれば編集後反映されるようです
staticな値に関しては再起動が必要な模様
slowqueryログ関連の設定値はdynamicなので設定後確認できました
- 変更前
mysql> show variables like 'slow_query_log'; +----------------+-------+ | Variable_name | Value | +----------------+-------+ | slow_query_log | OFF | +----------------+-------+ mysql> show variables like 'log_queries_not_using_indexes'; +-------------------------------+-------+ | Variable_name | Value | +-------------------------------+-------+ | log_queries_not_using_indexes | OFF | +-------------------------------+-------+ mysql> show variables like 'long_query_time'; +-----------------+-----------+ | Variable_name | Value | +-----------------+-----------+ | long_query_time | 10.000000 | +-----------------+-----------+
- 変更後
mysql> show variables like 'slow_query_log'; +----------------+-------+ | Variable_name | Value | +----------------+-------+ | slow_query_log | ON | +----------------+-------+ mysql> show variables like 'log_queries_not_using_indexes'; +-------------------------------+-------+ | Variable_name | Value | +-------------------------------+-------+ | log_queries_not_using_indexes | ON | +-------------------------------+-------+ mysql> show variables like 'long_query_time'; +-----------------+----------+ | Variable_name | Value | +-----------------+----------+ | long_query_time | 3.000000 | +-----------------+----------+ 1 row in set (0.00 sec)
ただし、デフォルトのパラメータグループを適用している場合即時反映がされません。
悲しい事にRDS作成時にデフォルトのパラメータグループを適用している場合はパラメータグループの付け替えが必要になります
そしてパラメータグループの付け替えにはRDSの再起動が必要です\(^o^)/