Navicat 部落格

2018 年 12 月 11 日,由 Robert Gravelle 撰寫

歡迎回到 MySQL 記錄的系列。稍後在討論 Navicat Monitor for MySQL / MariaDB 的監控時,我們將參考前三篇文章。第一部分分簡介了 MySQL 中不同的記錄類型,重點介紹了其中最重要的幾種記錄,並已涵蓋了第一種和第二種。第二部分更詳細地介紹了二進位記錄。而慢速記錄將成為今天的主題。

慢速查詢記錄包含執行時間超過一定時間並且需要查詢檢查特定數量的列的 SQL 語句。這是十分重要的,因為它大大簡化了尋找效率不佳或耗時的查詢的工作,正如你所知,這些查詢會對資料庫和整體伺服器效能產生負面影響。

慢速查詢記錄參數

你可能想知道究竟是什麼界定「慢」和/或「效率不佳」的查詢。顯然,這個問題沒有「一刀切」的答案,但是 MySQL 的製造商 Oracle 將其置於 10 秒,這恰好是 long_query_time 臨界值變數的最大值。而最小值 0 會記錄所有查詢。如果你想要更精細的值,也可以將該值指定為微秒的解析度。

預設情況下,慢速查詢記錄不會記錄管理語句以及不使用索引進行尋找的查詢。話雖如此,你可以使用 log_slow_admin_statements 和 log_queries_not_using_indexes 變數變更這個行為。

如果沒有為慢速查詢記錄檔案指定名稱,則將其命名為 host_name-slow.log。除非已提供絕對路徑名稱來指定不同的目錄,否則伺服器會在資料目錄中建立檔案。你可以使用 slow_query_log_file 指定記錄檔案的名稱。

慢速查詢記錄格式

以下是一般慢速查詢項目:

root@server# tail /var/log/slowqueries
# Time: 130320 7:30:26
# User@Host: db_user[db_database] @ localhost []
# Query_time: 4.545309 Lock_time: 0.000069 Rows_sent: 219 Rows_examined: 254
SET timestamp=1363779026;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';

如果使用 --log-short-format 選項,伺服器將在慢速查詢記錄寫入較少的資訊。相反,如果啟用 log_slow_extra 系統變數(從 MySQL 8.0.14 開始提供),伺服器會在記錄寫入幾個額外欄位。

啟用慢速查詢記錄

慢速查詢記錄是停用的。若要啟用它,你必須將 --slow_query_log 變數設定為 1(在 Navicat中設定為 ON)。同樣,不提供參數也會啟用慢速查詢記錄。參數 0(在 Navicat中設定為 OFF)會停用記錄。

在 Navicat 中,你可以使用「伺服器監控」工具尋找系統變數。透過「工具」主功能表命令存取它。

在「伺服器監控」中,按一下中間的「變數」索引標籤,然後向下捲動到清單中的 slow_query_log 和 slow_query_log_file 伺服器變數:


在 Navicat 的伺服器監控工具中的 slow_query_log 伺服器變數

Navicat 文章
頻道記錄
分享
部落格封存檔