Mysqlでは、log_queries_not_using_indexes
、slow_query_log
、long_query_time
を有効にすると、クエリ時間がlong_query_time
よりはるかに短い場合でも、生成されたスロークエリログファイルに多くのクエリが含まれることに気付きました。
log_queries_not_using_indexes
が有効になると、Mysqlは「long_query_time」が何であっても、インデックスを使用しないすべてのクエリをログに記録するようです。
これを克服する方法はありますか?つまり、インデックスを使用しているかどうかに関係なく、long_query_time
よりも時間がかかるすべてのクエリをログに記録する方法はありますか?
これは予想される動作です。オンラインでドキュメントを参照しますが、要約すると:
long_query_time
はクエリ実行時間のしきい値であり、それを超えるとログに記録されます。インデックスを使用するかどうかに関係なく、しきい値を超えるクエリはログに記録されます。
log_queries_not_using_indexes
は、スキャンする行数を制限するためにインデックスを使用しないすべてのクエリを追加でログに記録するようMySQLに指示します。この条件へのログオンは、実行時間に関係なく発生します。
あなたが見ているものを説明するのに役立つことを願っています。たぶんあなただけが欲しいようですlong_query_time
およびnotlog_queries_not_using_indexes
特定のしきい値よりも時間がかかるクエリのみをキャプチャすることが目的の場合。
http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_long_query_time