「log_queries_not_using_indexes」を有効にすると「long_query_time」が無効になりますか?


13

Mysqlでlog_queries_not_using_indexesslow_query_logおよびを有効にするとlong_query_time、クエリ時間が5秒よりはるかに短い場合でも、生成されたスロークエリログファイルに多くのクエリが含まれることに気付きましたlong_query_time

一度と思われlog_queries_not_using_indexes有効になっている、MySQLは関係なく「long_query_time」は何であるか、インデックスを使用していないではないすべてのクエリをログに記録します。

これを克服する方法はありますか?つまり、long_query_timeインデックスを使用しているかどうかに関係なく、時間がかかるすべてのクエリを記録する方法はありますか?

回答:


27

それは予想される動作です。オンラインでドキュメントを参照しますが、要約は次のとおりです。

  • long_query_timeクエリ実行時間のしきい値で、それを超えるとログに記録されます。インデックスを使用するかどうかに関係なく、しきい値よりも時間がかかるクエリはすべてログに記録されます。

  • log_queries_not_using_indexesスキャンする行数を制限するためにインデックスを使用しないすべてのクエリを追加で記録するようMySQLに指示します。この状態でのログオンは、実行時間に関係なく発生します。

あなたが見ているものの説明に役立つことを願っています。あなたはおそらくしたいようだlong_query_timeない log_queries_not_using_indexesあなたの目標が特定の閾値以上に時間がかかるだけキャプチャクエリにある場合。

ドキュメントリンク:http : //dev.mysql.com/doc/refman/5.5/en/server-options.html#option_mysqld_log-queries-not-using-indexes

http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_long_query_time


5
MySQLは、これら2種類のクエリをそれぞれ独自のファイルに記録することを許可する必要があります。クエリ時間がリストされている行を見つけるための手法を思い付きました。これにより、遅いクエリを視覚的に簡単にスキャンできますが、個別のファイルを用意する方がよいでしょう。
夜のフクロウ

ここで特に言及しているのは、「実行時間に関係なくこの状態でログオンする」ということです。?
user10089632

@ user10089632は、上記の最初のリンクにあるドキュメントを読みます。
dezso
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.