ablog

不器用で落着きのない技術者のメモ

MySQL の log_queries_not_using_indexes でインデックス未使用のクエリをログ出力する

MySQL で log_queries_not_using_indexes を 1 に設定すると、インデックスを使用しないログが出力される(デフォルトは 0 で無効)。

スロークエリーログは、実行に要した時間が long_query_time 秒を超え、
少なくとも min_examined_row_limit 行を検査する必要があった SQL ステートメントで構成されます。
long_query_time の最小値およびデフォルト値は、それぞれ 0 および 10 です。
(中略)
スロークエリーログに書き込まれるステートメントに、
行参照についてインデックスを使用しないクエリーを含めるには、log_queries_not_using_indexes システム変数を有効にします。
そのようなクエリーがログに記録されると、スロークエリーログが急速に増大することがあります。
log_throttle_queries_not_using_indexes システム変数を設定することによって、これらのクエリーに速度制限を課すことが可能です。
デフォルトでは、この変数は 0 で、制限がないことを意味します。
正の値を指定すると、インデックスを使用しないクエリーのロギングについて分あたりの制限が課されます。
(中略)
実行時にスロークエリーログを無効化または有効化したり、ログファイル名を変更したりするには、
グローバルな slow_query_log および slow_query_log_file システム変数を使用します。
slow_query_log を 0 (または OFF) にすると、ログが無効化し、1 (または ON) で有効化します。

MySQL :: MySQL 5.6 リファレンスマニュアル :: 5.2.5 スロークエリーログ