mysql slow log 是用來記錄執(zhí)行時(shí)間較長(超過long_query_time秒)的sql的一種日志工具.
啟用 slowlog
有兩種啟用方式:
1, 在my.cnf 里 通過 log-slow-queries[=file_name]
2, 在mysqld進(jìn)程啟動時(shí),指定--log-slow-queries[=file_name]選項(xiàng)
比較的五款常用工具
mysqldumpslow, mysqlsla, myprofi, mysql-explain-slow-log, mysqllogfilter
mysqldumpslow, mysql官方提供的慢查詢?nèi)罩痉治龉ぞ? 輸出圖表如下:
主要功能是, 統(tǒng)計(jì)不同慢sql的
出現(xiàn)次數(shù)(Count),
執(zhí)行最長時(shí)間(Time),
累計(jì)總耗費(fèi)時(shí)間(Time),
等待鎖的時(shí)間(Lock),
發(fā)送給客戶端的行總數(shù)(Rows),
掃描的行總數(shù)(Rows),
用戶以及sql語句本身(抽象了一下格式, 比如 limit 1, 20 用 limit N,N 表示).
mysqlsla, hackmysql.com推出的一款日志分析工具(該網(wǎng)站還維護(hù)了 mysqlreport, mysqlidxchk 等
比較實(shí)用的mysql工具)
整體來說, 功能非常強(qiáng)大. 數(shù)據(jù)報(bào)表,非常有利于分析慢查詢的原因, 包括執(zhí)行頻率, 數(shù)據(jù)量, 查詢消
耗等.
格式說明如下:
總查詢次數(shù) (queries total), 去重后的sql數(shù)量 (unique)
輸出報(bào)表的內(nèi)容排序(sorted by)
最重大的慢sql統(tǒng)計(jì)信息, 包括 平均執(zhí)行時(shí)間, 等待鎖時(shí)間, 結(jié)果行的總數(shù), 掃描的行總數(shù).
Count, sql的執(zhí)行次數(shù)及占總的slow log數(shù)量的百分比.
Time, 執(zhí)行時(shí)間, 包括總時(shí)間, 平均時(shí)間, 最小, 最大時(shí)間, 時(shí)間占到總慢sql時(shí)間的百分比.
95% of Time, 去除最快和最慢的sql, 覆蓋率占95%的sql的執(zhí)行時(shí)間.
Lock Time, 等待鎖的時(shí)間.
95% of Lock , 95%的慢sql等待鎖時(shí)間.
Rows sent, 結(jié)果行統(tǒng)計(jì)數(shù)量, 包括平均, 最小, 最大數(shù)量.
Rows examined, 掃描的行數(shù)量.
Database, 屬于哪個數(shù)據(jù)庫
Users, 哪個用戶,IP, 占到所有用戶執(zhí)行的sql百分比
Query abstract, 抽象后的sql語句
Query sample, sql語句
除了以上的輸出, 官方還提供了很多定制化參數(shù), 是一款不可多得的好工具.
mysql-explain-slow-log, 德國人寫的一個perl腳本.
http://www.willamowius.de/mysql-tools.html
功能上有點(diǎn)瑕疵, 不僅把所有的 slow log 打印到屏幕上, 而且統(tǒng)計(jì)也只有數(shù)量而已. 不推薦使用.
mysql-log-filter, google code上找到的一個分析工具.提供了 python 和 php 兩種可執(zhí)行的腳本.
http://code.google.com/p/mysql-log-filter/
功能上比官方的mysqldumpslow, 多了查詢時(shí)間的統(tǒng)計(jì)信息(平均,最大, 累計(jì)), 其他功能都與
mysqldumpslow類似.
特色功能除了統(tǒng)計(jì)信息外, 還針對輸出內(nèi)容做了排版和格式化, 保證整體輸出的簡潔. 喜歡簡潔報(bào)表
的朋友, 推薦使用一下.
myprofi, 純php寫的一個開源分析工具.項(xiàng)目在 sourceforge 上.
http://myprofi.sourceforge.net/
功能上, 列出了總的慢查詢次數(shù)和類型, 去重后的sql語句, 執(zhí)行次數(shù)及其占總的slow log數(shù)量的百分
比.
從整體輸出樣式來看, 比mysql-log-filter還要簡潔. 省去了很多不必要的內(nèi)容. 對于只想看sql語句
及執(zhí)行次數(shù)的用戶來說, 比較推薦.
總結(jié)
工具/功能 一般統(tǒng)計(jì)信息 高級統(tǒng)計(jì)信息 腳本 優(yōu)勢
mysqldumpslow 支持 不支持 perl mysql官方自帶
mysqlsla 支持 支持 perl 功能強(qiáng)大,數(shù)據(jù)報(bào)表齊全,定制化能力強(qiáng).
mysql-explain-slow-log 支持 不支持 perl 無
mysql-log-filter 支持 部分支持 python or php 不失功能的前提下,保持輸出簡潔
myprofi
本文出自:億恩科技【www.allwellnessguide.com】
服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM]
|