SET GLOBAL log_slow_queries = ON; SET GLOBAL long_query_time = 0.2; -- 閾值 0.2 秒(支援毫秒) SET GLOBAL log_queries_not_using_indexes = ON; -- 記錄無索引查詢
SHOW VARIABLES LIKE 'log_output'; -- FILE:寫文件(默認) -- TABLE:寫 mysql.slow_log 表

SET GLOBAL log_output = 'TABLE'; -- 或 'FILE,TABLE' 並行

SHOW VARIABLES LIKE 'slow_query_log_file';
[mysqld] log_slow_queries = /var/log/mysql/slow.log long_query_time = 2 log_queries_not_using_indexes = ON log_output = FILE
# 按查詢次數排序,顯示前 10 mysqldumpslow -s c -t 10 /var/log/mysql/slow.log # 按返回行數排序 mysqldumpslow -s r -t 10 /var/log/mysql/slow.log # 按耗時排序,過濾 LEFT JOIN mysqldumpslow -s t -t 10 -g "left join" /var/log/mysql/slow.log
| 參數 | 含義 |
|---|---|
-s c/t/l/r | 按次數/時間/查詢時間/返回行數排序 |
-t N | Top N |
-g "pattern" | 正則過濾(不區分大小寫) |
Time: 120815 23:22:11 User@Host: root[root] @ localhost [] Query_time: 9.869362 Lock_time: 0.000035 Rows_sent: 1 Rows_examined: 6261774 SET timestamp=1294388531; select count(*) from blog;
long_query_time = 1-2 秒log_queries_not_using_indexes(產生大量垃圾日志)mysqldumpslow 分析 + EXPLAIN 優化