萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

MySQL 啟用通用查詢日誌與慢查詢日誌完整配置

通用查詢日誌(General Query Log)

記錄所有客戶端連線與執行的 SQL 語句,適合開發調試,**生產環境不建議長期開啟**(磁碟 I/O 開銷大)。

配置方法(my.cnf / my.ini)

[mysqld]
general_log = 1
general_log_file = /var/log/mysql/general.log

Windows 路徑範例:general_log_file = "C:/mysql/logs/general.log"

動態開啟/關閉(無需重啟)

SET GLOBAL general_log = ON;
SET GLOBAL general_log = OFF;

慢查詢日誌

記錄執行時間超過閾值的 SQL,生產環境**強烈建議常開**,用於性能調優。

推薦配置

[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql/slow.log
long_query_time = 2          # 超過 2 秒記錄(可調至 0.5-1 秒)
log_queries_not_using_indexes = 1  # 記錄未用索引的查詢(可選)

常用分析工具

  • mysqldumpslow -s t -t 10 /var/log/mysql/slow.log:按耗時排序 Top 10
  • pt-query-digest:Percona 專業分析工具,支援聚合、統計、報表輸出

日誌輪轉與維護

避免日誌佔滿磁碟,建議配置 logrotate:

/var/log/mysql/*.log {
    daily
    rotate 7
    compress
    missingok
    notifempty
    create 640 mysql mysql
    sharedscripts
    postrotate
        mysqladmin flush-logs > /dev/null 2>&1 || true
    endscript
}

效能影響與最佳實踐

日誌類型建議環境典型開銷備註
General Log開發/測試高(全量寫入)生產僅短期開啟排查具體問題
Slow Log全環境低(僅記錄慢查詢)長期開啟,配合 pt-query-digest 定期分析

合理配置日誌,讓資料庫「有據可查」,是穩定運維的基石。

copyright © 萬盛學電腦網 all rights reserved