Mysql

啟用“log_queries_not_using_indexes”會禁用“long_query_time”?

  • March 1, 2018

我注意到,在 Mysql 中,啟用log_queries_not_using_indexes,slow_query_log和時long_query_time,即使查詢時間遠小於 ,生成的慢查詢日誌文件也會包含很多查詢long_query_time

似乎一旦log_queries_not_using_indexes啟用,無論“long_query_time”是多少,Mysql都會記錄所有不使用索引的查詢。

有沒有辦法克服這個問題?我的意思是,有沒有辦法記錄所有花費時間比 更長的查詢long_query_time,無論它們是否使用索引?

這是預期的行為。請參閱線上文件,但總結如下:

  • 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

引用自:https://dba.stackexchange.com/questions/29582