首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> MySQL 資料庫 >> MySQL 綜合教學

MySQL 慢查詢日誌分析工具對比 (上):mysqldumpslow、mysqlsla、mysql-explain-slow-log 優缺點評測

     編輯:MySQL 綜合教學

工具對比總表

工具語言核心功能優點缺點推薦指數
mysqldumpslowPerl (官方內建)聚合相似 SQL、統計 Count/Time/Lock/Rows、抽象化 LIMIT 值無依賴、輕量、標準輸出易腳本處理無視覺化、無 EXPLAIN 整合、功能基礎⭐⭐⭐
mysqlslaPerl多維度報表 (頻率/資料量/耗時/鎖/用戶/抽象 SQL/樣本 SQL)、支援多種排序、過濾功能最強、報表豐富、支援自訂輸出格式依賴較多 Perl 模組、輸出冗長、專案較久未更新⭐⭐⭐⭐⭐
mysql-explain-slow-logPerl逐條 EXPLAIN、顯示執行計劃直接看到優化器決策輸出噪音大 (全列印 SQL)、統計僅計數、維護停止⭐⭐

mysqldumpslow 實戰用法

# 基本:前 10 筆最耗時
mysqldumpslow -t 10 -s t /var/log/mysql/mysql-slow.log

# 依總耗時排序 (at)
mysqldumpslow -s at -t 20 /var/log/mysql/mysql-slow.log

# 依查詢次數排序 (c)
mysqldumpslow -s c -t 20 /var/log/mysql/mysql-slow.log

# 依鎖等待時間排序 (l)
mysqldumpslow -s l -t 10 /var/log/mysql/mysql-slow.log

# 依掃描行數排序 (r)
mysqldumpslow -s r -t 10 /var/log/mysql/mysql-slow.log

# 只看特定資料庫
mysqldumpslow -d db_name /var/log/mysql/mysql-slow.log

mysqlsla 進階範例

# 完整報表 (HTML 輸出)
mysqlsla --log-type=slow --top-number=20 --sort=t_sum /var/log/mysql/mysql-slow.log > report.html

# 只看特定用戶
mysqlsla --log-type=slow --user=app_user /var/log/mysql/mysql-slow.log

# 匯出 CSV 供 Excel 分析
mysqlsla --log-type=slow --format=csv /var/log/mysql/mysql-slow.log > slow.csv

輸出報表關鍵欄位解讀 (mysqlsla)

  • Count:該 SQL 模式出現次數 / 佔總比。
  • Time:總/平均/最小/最大/中位數耗時、佔總耗時比。
  • 95% of Time:去極值後 95% 覆蓋率耗時分布。
  • Lock Time:鎖等待統計。
  • Rows sent / examined:回傳 vs 掃描行數,比值越大越可能全表掃描。
  • Query abstract:參數化後的 SQL 模板 (如 SELECT * FROM t WHERE id = N)。
  • Query sample:實際執行的完整 SQL 範例。

選型建議

  1. 日常快速巡檢 → mysqldumpslow -s at -t 20。
  2. 深度優化分析 → mysqlsla 產出 HTML/CSV 給團隊研討。
  3. 自動化巡檢腳本 → 解析 mysqldumpslow 輸出,超過閾值發送告警。
  4. 8.0+ 環境 → 考慮 sys.schema_table_statistics、performance_schema.events_statements_summary_by_digest 原生替代。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved