RDS(MySQL)のスロークエリログで設定した閾値(long_query_time)が反映されていない

2020.11.29

困っていた内容

RDS(MySQL)でスロークエリログをCloudWatch Logsに出力しています。

DBパラメータグループで設定した閾値(long_query_time)よりも短い実行時間のクエリもログとして記録されてしまうのですがどうしたらいいでしょうか?

原因

log_queries_not_using_indexes の設定値が1(TRUE)になっているため。

log_queries_not_using_indexes: インデックスを使用しないすべてのクエリをスロークエリログに記録するには、1 に設定します。デフォルトは 0 です。インデックスを使用しないクエリは、その実行時間が long_query_time パラメータの値未満であってもログに記録されます。

どう対応すればいいの?

インデックスを使用しないクエリが記録されなくなっても問題ないかを確認した上で

スロークエリログを出力しているRDS>DBパラメータグループよりlog_queries_not_using_indexesを編集し「0」にします。

参考情報

【アップデート】Amazon Auroraでスロークエリや一般ログがCloudWatch Logsへ出力可能に

テクニカルサポートノートとは?

クラスメソッドのカルチャー(CLP)の「情報発信を通じて、全ての人々の創造活動に貢献し続ける」という考えから、クラスメソッド メンバーズをご利用のお客様よりいただいたお問い合わせより、他のAWS ユーザーにとっても有益な情報を一般的なTIPSとしてご紹介しています。