启用“ log_queries_not_using_indexes”会禁用“ long_query_time”吗?


13

我注意到,在MySQL中实现的时候log_queries_not_using_indexesslow_query_loglong_query_time,生成慢查询日志文件将包含大量的查询即使查询时间比少得多long_query_time

似乎一旦log_queries_not_using_indexes启用,无论“ long_query_time”是什么,Mysql都会记录所有不使用索引的查询。

有办法克服吗?我的意思是,有没有一种方法可以记录所有比花费更多时间的查询long_query_time,而不管它们是否使用索引?

Answers:


27

那是预期的行为。请参考在线文档,但摘要:

  • long_query_time是查询执行时间的阈值,超过该阈值将被记录下来。记录花费时间超过阈值的所有查询,无论它们是否使用索引。

  • log_queries_not_using_indexes告诉MySQL另外记录所有不使用索引来限制扫描行数的查询。无论执行时间如何,都会记录此条件。

希望能帮助您解释所见。如果您的目标是仅捕获花费超过特定阈值的时间的查询,则似乎只是想要long_query_time不是 想要log_queries_not_using_indexes

Doc链接: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/zh-CN/server-system-variables.html#sysvar_long_query_time


5
MySQL应该允许将这两种查询中的每一种都记录到自己的文件中。我想出一种技术来查找列出查询时间的行,这样可以很容易地以视觉方式扫描速度较慢的查询,但是拥有单独的文件会更好。
暗夜猫头鹰

在此处特别提及时,这意味着什么:“在这种情况下进行登录,而不考虑执行时间。” ?
user10089632'3

@ user10089632阅读上面第一个链接下的文档。
dezso
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.