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

Windows 下使用 mysqldumpslow.pl 分析 MySQL 慢查詢日誌

     編輯:MySQL 綜合教學

Windows 下使用 mysqldumpslow.pl 分析 MySQL 慢查詢日誌

mysqldumpslow.pl 是 MySQL 官方提供的 Perl 腳本,用於解析並匯總慢查詢日誌。本文記錄在 Windows 環境下的完整配置與使用流程。

一、環境準備

  1. 下載 ActivePerl(如 ActivePerl_5.16.2.3010812913.msi)並安裝
  2. 將 Perl bin 目錄加入系統環境變數 PATH
  3. 確認 MySQL 安裝目錄下存在 mysqldumpslow.pl(通常在 bin 目錄)

二、常用參數說明

C:\Program Files\MySQL\MySQL Server 5.6\bin>perl mysqldumpslow.pl --help
-s ORDER  排序方式:al(平均鎖時間) at(平均查詢時間) ar(平均返回行數) c(次數) l(鎖時間) r(返回行數) t(查詢時間)
-r        反向排序(大值在後)
-t NUM    顯示前 N 條
-a        不抽象化數字為 N、字串為 'S'
-g PATTERN 正則過濾語句

三、實戰場景:分析線上 slow.log

將線上 slow.log 複製到本地,執行:

mysqldumpslow.pl -r -s c -a -t 10 slow.log > E:\slow.txt
  • -s c:按執行次數排序
  • -r:倒序(高頻在前)
  • -a:保留原始 SQL 細節
  • -t 10:僅輸出前 10 條

四、輸出結果解讀

Count: 23  Time=505.55s (11627s)  Lock=0.00s (0s)  Rows=30740.8 (707039)
SELECT DISTINCT u.name,o.full_name FROM pub_user u...
  • Count:執行次數
  • Time:平均耗時 / 總耗時
  • Lock:平均鎖等待 / 總鎖等待
  • Rows:平均返回行數 / 總返回行數

五、常見報錯處理

若執行報錯,檢查 my.ini 是否配置 slow_query_log、slow_query_log_file、long_query_time 等參數,修正後重啟 MySQL 服務即可。

總結

善用 mysqldumpslow.pl 的排序、過濾、抽象化功能,能快速定位高頻、高耗時、大結果集的慢 SQL,為索引優化、SQL 重寫提供精準依據。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved