隨著 MySQL 資料庫在生產環境中穩定運行,前端業務逐步遷移接入,為了未雨綢繆,團隊自行開發了一套 MySQL 監控工具,涵蓋 Slave 狀態、同步狀態、對象資訊、用戶權限、任務狀態以及慢查詢日誌等核心模組。本文將詳細介紹慢查詢日誌的配置與實戰應用。
MySQL 5.1 版本起支援使用 SET GLOBAL 動態修改全域變數,變更即時生效,無需重啟資料庫服務。可透過 SHOW VARIABLES 查看目前配置狀態:

MySQL 5.1+ 版本支援 TABLE(寫入系統表)與 FILE(寫入檔案)兩種輸出方式,亦可同時啟用:
SET GLOBAL log_output = 'TABLE,FILE';

開啟慢查詢記錄功能:
SET GLOBAL slow_query_log = ON;
預設情況下,執行時間超過 10 秒的查詢會被記錄。可透過以下指令檢視或調整閾值:
SHOW VARIABLES LIKE 'long_query_time';

配置完成後,MySQL 會自動將超過閾值的查詢語句寫入 mysql.slow_log 系統表中,方便後續分析。
結合 SSIS(SQL Server Integration Services)與預存程序,可實現多台 MySQL 伺服器的每日自動化慢查詢巡檢,該方案同樣適用於大規模 MySQL 叢集環境。以下為 SSIS 監控流程圖:

測試時將 long_query_time 設為 0 秒,郵件告警效果如下:

long_query_time 設為 1~2 秒,平衡可見度與效能開銷。mysql.slow_log 表或輪轉慢查詢日誌檔案,避免佔用過多磁碟空間。pt-query-digest 等工具進行深度分析,快速定位效能瓶頸。