Mysql

慢查詢記錄一切

  • December 31, 2021

我有一個記錄慢查詢的 mysql 實例。我將它設置為 1 秒,但我得到了很多這些:(範例)Query_time:0.000237 Lock_time:0.000064 Rows_sent:0 Rows_examined:109

在另一台伺服器上我得到這些: Query_time: 0 Lock_time: 0 Rows_sent: 0 Rows_examined: 0

無論哪種方式,他們似乎都在記錄其他查詢……或者我讀錯了什麼?

set-variable = log-slow-queries="/tmp/mysql-slow-query.log"
  set-variable = long_query_time=1

如果您使用的是 mysql 5.1.21 或更新版本,您可以使用min_examined_row_length更改記錄慢速查詢的行為

將其設置為 5000 左右,並保持 log_queries_not_using_indexes 開啟。

您應該將long_query_time提高到 10(預設值)

MySQL 5.1 允許 long_query_time 的亞秒粒度,這可以解釋為什麼您會在第一個慢查詢日誌顯示時看到十進製表示法。

您可能還需要檢查並確保未啟用log_queries_not_using_indexes 。否則,任何不使用索引的舊查詢將繞過 long_query_time 設置並記錄在慢日誌中。

警告

在 MySQL 5.1 中不推薦使用 set-variable

這是來自 MySQL 5.1.37

 -O, --set-variable=name
                     Change the value of a variable. Please note that this
                     option is deprecated;you can set variables directly with
                     --variable-name=value.

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