from : http://www.chinaunix.net/jh/17/1286359.html
mysql slow log 是用來記錄執行時間較長(超過long_query_time秒)的sql的一種日志工具. 啟用 slow log 有兩種啟用方式: 1, 在my.cnf 里 通過 log-slow-queries[=file_name]2, 在mysqld進程啟動時,指定--log-slow-queries[=file_name]選項 比較的五款常用工具 mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter mysqldumpslow, mysql官方提供的慢查詢日志分析工具. 輸出圖表如下: 主要功能是, 統計不同慢sql的 出現次數(Count), 執行最長時間(Time), 累計總耗費時間(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 打印到屏幕上, 而且統計也只有數量而已. 不推薦使用. mysql-log-filter, google code上找到的一個分析工具.提供了 python 和 php 兩種可執行的腳本. 功能上比官方的mysqldumpslow, 多了查詢時間的統計信息(平均,最大, 累計), 其他功能都與 mysqldumpslow類似. myprofi, 純php寫的一個開源分析工具.項目在 sourceforge 上. 功能上, 列出了總的慢查詢次數和類型, 去重后的sql語句, 執行次數及其占總的slow log數量的百分比. 總結
|