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

mysqldumpslow 慢查詢分析工具參數詳解與實戰範例

     編輯:MySQL 資料庫相關知識

工具定位

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
  • Count:該類 SQL 執行次數
  • Time:最大/總耗時(秒)
  • Lock:最大/總鎖等待時間
  • Rows:平均/總回傳行數

實戰範例

1. 找出平均耗時最久的前 20 條

mysqldumpslow -s at -t 20 /var/lib/mysql/slow.log

2. 找出總鎖等待最久的前 10 條

mysqldumpslow -s al -t 10 /var/lib/mysql/slow.log

3. 只分析含 orders 表的慢查詢

mysqldumpslow -g "orders" -s at -t 30 /var/lib/mysql/slow.log

4. 結合 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
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved