MySQL 5.1.6 前,日誌啟用/關閉、輸出目標變更皆需重啟服務,線上排查慢查詢極不便。
支援 general_log、slow_query_log 兩大日誌:
FILE(檔案)或 TABLE(CSV 表)SET GLOBAL 即時生效,無需重啟-- 1. 設定輸出為檔案
SET GLOBAL log_output = 'FILE';
-- 2. 指定日誌檔路徑
SET GLOBAL general_log_file = '/tmp/general.log';
SET GLOBAL slow_query_log_file = '/tmp/slow.log';
-- 3. 開啟日誌
SET GLOBAL general_log = ON;
SET GLOBAL slow_query_log = ON;
-- 4. 關閉日誌
SET GLOBAL general_log = OFF;
SET GLOBAL slow_query_log = OFF;
mysql.general_log、mysql.slow_log 兩張 CSV 引擎表ALTER TABLE ... ENGINE=MyISAM 轉為高效查詢引擎SET GLOBAL long_query_time = 1; -- 超過 1 秒記錄(支援微秒)
SET GLOBAL log_queries_not_using_indexes = ON; -- 記錄未用索引查詢
SET GLOBAL min_examined_row_limit = 100; -- 忽略掃描少於 100 列的查詢
general_log,僅除錯時短暫開啟slow_query_log 長期開啟,long_query_time=1,輸出 TABLE 便於分析pt-query-digest 分析慢查詢,產出優化清單log_slow_admin_statements 記錄管理指令