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

2020.11.29

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

困っていた内容

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へ出力可能に