首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 慢查詢日誌配置完整指南:從啟用到監控實戰

     編輯:MySQL 資料庫相關知識

隨著 MySQL 資料庫在生產環境中穩定運行,前端業務逐步遷移接入,為了未雨綢繆,團隊自行開發了一套 MySQL 監控工具,涵蓋 Slave 狀態、同步狀態、對象資訊、用戶權限、任務狀態以及慢查詢日誌等核心模組。本文將詳細介紹慢查詢日誌的配置與實戰應用。

一、動態調整全域變數,無需重啟服務

MySQL 5.1 版本起支援使用 SET GLOBAL 動態修改全域變數,變更即時生效,無需重啟資料庫服務。可透過 SHOW VARIABLES 查看目前配置狀態:

SHOW VARIABLES 輸出示例

二、配置日誌輸出目標

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

SET GLOBAL log_output = 'TABLE,FILE';

log_output 設定示例

三、啟用慢查詢日誌與設定閾值

開啟慢查詢記錄功能:

SET GLOBAL slow_query_log = ON;

預設情況下,執行時間超過 10 秒的查詢會被記錄。可透過以下指令檢視或調整閾值:

SHOW VARIABLES LIKE 'long_query_time';

long_query_time 設定示例

配置完成後,MySQL 會自動將超過閾值的查詢語句寫入 mysql.slow_log 系統表中,方便後續分析。

四、構建自動化監控體系

結合 SSIS(SQL Server Integration Services)與預存程序,可實現多台 MySQL 伺服器的每日自動化慢查詢巡檢,該方案同樣適用於大規模 MySQL 叢集環境。以下為 SSIS 監控流程圖:

SSIS 監控流程圖

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

慢查詢郵件告警示例

五、最佳實踐建議

  • 生產環境建議將 long_query_time 設為 1~2 秒,平衡可見度與效能開銷。
  • 定期清理 mysql.slow_log 表或輪轉慢查詢日誌檔案,避免佔用過多磁碟空間。
  • 結合 pt-query-digest 等工具進行深度分析,快速定位效能瓶頸。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved