mysqldumpslow 是 MySQL 官方內建的慢查詢日誌分析工具,能將同類 SQL 歸一化(用 N 代表數字、S 代表字串)並統計執行頻次、耗時、鎖等待、回傳行數。
| 參數 | 說明 | 預設 |
|---|---|---|
-s ORDER | 排序鍵:c(次數) t(總時間) l(鎖時間) r(回傳行);前綴 a 表平均值(如 at=平均耗時) | at |
-t NUM | 只顯示前 N 筆 | 10 |
-g PATTERN | 正則過濾 SQL(不分大小寫) | 無 |
-r | 反向排序 | 否 |
Count: 904 Time=16.44s (14861s) Lock=0.5s (45s) Rows=30.0 (27150), root[root] @ localhost SELECT * FROM t WHERE id=N AND name=S
mysqldumpslow -s at -t 20 /var/lib/mysql/slow.log
mysqldumpslow -s al -t 10 /var/lib/mysql/slow.log
orders 表的慢查詢mysqldumpslow -g "orders" -s at -t 30 /var/lib/mysql/slow.log
grep 進一步篩選mysqldumpslow -s at /var/lib/mysql/slow.log | grep -i "update"
logrotate 切割慢查詢日誌,避免單檔過大導致分析緩慢pt-query-digest(Percona Toolkit)可獲得更豐富的統計視覺化報表long_query_time = 0.5(秒)並開啟 log_queries_not_using_indexes