我在 Mariadb 10.6 上運行 WordPress 網站,最近我在 Mysqltuner 中看到在沒有索引的情況下執行連接時出現錯誤。
雖然數字不是很大,但Mysqltuner建議您不斷增加Key_buffer_size。
但是,我的 VPS 沒有大量可用內存,因此我正在通過另一個問題來解決此錯誤。
由於我有大約幾十個活動插件,我想檢查哪個很棒的插件導致了問題。
因此,首先,我啟用了錯誤日誌,如下所示。
log-queries-not-using-indexes = 1
log_error = /var/log/mysql/mysql-error.log
slow_query_log = 1
slow_query_log_file = /var/log/mysql/mysql-slow.log
long_query_time = 3
一段時間後,我執行 pt-query-digest 來分析錯誤日誌。
pt-query-digest /var/log/mysql/mysql-slow.log
但我想不出其他問題。
在慢日誌中的眾多查詢中,如何確定哪個查詢正在嘗試連接沒有索引的列?
我不了解資料庫,所以僅通過查看查詢無法弄清楚。
答案1
若要僅查找沒有索引執行的聯接,
從 MySQL 命令提示字元中,確定目前值,以便在慢查詢日誌中僅記錄 JPWI 1 小時後即可恢復正常
SELECT @@long_query_time;
SELECT @@min_examined_row_limit;
write down the above values
SET GLOBAL long_query_time=3600; for a ONE MINUTE slow log trigger
SET GLOBAL min_examined_row_limit=1; if the query reads one row, consider logging
SET GLOBAL log_queries_not_using_indexes=1; to get the log you are needing
一個小時內,
SET GLOBAL long_query_time=discovered above;
SET GLOBAL min_examined_row_limit=discovered above;
SET GLOBAL log_queries_not_using_indexes=0; # to turn OFF feature
FLUSH LOGS;
去查看最後一小時的慢查詢日誌,了解不涉及索引的查詢。
查看個人資料以獲取聯絡信息,如果您需要其他建議,請與我們聯絡。
大多數人不會記錄慢速查詢和沒有索引的查詢,以避免分離意大利麵條。要嘛選其一,要嘛選其一,只是為了保持某種形式的理智。
(固定格式,編輯需要6個字元)