程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> mysql slow log分析工具的比較(1)

mysql slow log分析工具的比較(1)

編輯:MySQL綜合教程

mysql 中的 slow log 是用來記錄執行時間較長(超過 long_query_time 秒)的 sql 的一種日志工具。      

啟用 slow log      

在 my.cnf 中設置

  1. [mysqld] 
  2. slow_query_log=on 
  3. slow_query_log_file=mysql-slow 

重啟 MySQL 服務。

五款常用工具      

mysqldumpslow

mysql官方提供的慢查詢日志分析工具。輸出圖表如下:      

     

主要功能包括統計不同慢 sql 的      

  • 出現次數(Count)
  • 執行耗費的平均時間和累計總耗費時間(Time)
  • 等待鎖耗費的時間(Lock)
  • 發送給客戶端的行總數(Rows)
  • 掃描的行總數(Rows)
  • 用戶以及sql語句本身(抽象了一下格式,比如 limit 1, 20 用 limit N,N 表示)

mysqlsla

hackmysql.com 推出的一款日志分析工具(該網站還維護了 mysqlreport,mysqlidxchk 等比較實用的mysql 工具)。      

     

整體來說,功能非常強大。輸出的數據報表非常有利於分析慢查詢的原因,包括執行頻率、數據量、查詢消耗等。      

格式說明如下:      

  • 總查詢次數 (queries total),去重後的 sql 數量 (unique)
  • 輸出報表的內容排序(sorted by)
  • 最重大的慢 sql 統計信息,包括平均執行時間、等待鎖時間、結果行的總數、掃描的行總數。
  • Count -- sql 的執行次數及占總的 slow log 數量的百分比。
  • Time -- 執行時間,包括總時間、平均時間、最小、最大時間、時間占到總慢 sql 時間的百分比。
  • 95% of Time -- 去除最快和最慢的 sql,覆蓋率占 95% 的 sql 的執行時間。
  • Lock Time -- 等待鎖的時間。
  • 95% of Lock -- 95% 的慢 sql 等待鎖時間。
  • Rows sent -- 結果行統計數量,包括平均、最小、最大數量。
  • Rows examined -- 掃描的行數量。
  • Database -- 屬於哪個數據庫。
  • Users -- 哪個用戶、IP、占到所有用戶執行的 sql 百分比。
  • Query abstract -- 抽象後的 sql 語句。
  • Query sample -- sql 語句。

除了以上的輸出,官方還提供了很多定制化參數,是一款不可多得的好工具。      

mysql-explain-slow-log

德國人寫的一個 perl 腳本。      

http://www.willamowius.de/mysql-tools.html      

http://www.bt285.cn/content.php?id=1196863      


     

     

功能上有點瑕疵。不僅把所有的 slow log 打印到屏幕上,而且統計也只有數量而已,不推薦使用。


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved