五款常用mysql slow log分析工具的比較分析
更新時(shí)間:2011年05月22日 12:17:41 作者:
mysql slow log 是用來(lái)記錄執(zhí)行時(shí)間較長(zhǎng)(超過(guò)long_query_time秒)的sql的一種日志工具
啟用 slow log
有兩種啟用方式:
1, 在my.cnf 里 通過(guò) log-slow-queries[=file_name]
2, 在mysqld進(jìn)程啟動(dòng)時(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í)行最長(zhǎng)時(shí)間(Time),
累計(jì)總耗費(fèi)時(shí)間(Time),
等待鎖的時(shí)間(Lock),
發(fā)送給客戶端的行總數(shù)(Rows),
掃描的行總數(shù)(Rows),
用戶以及sql語(yǔ)句本身(抽象了一下格式, 比如 limit 1, 20 用 limit N,N 表示).
mysqlsla, hackmysql.com推出的一款日志分析工具(該網(wǎng)站還維護(hù)了 mysqlreport, mysqlidxchk 等比較實(shí)用的mysql工具)

整體來(lái)說(shuō), 功能非常強(qiáng)大. 數(shù)據(jù)報(bào)表,非常有利于分析慢查詢的原因, 包括執(zhí)行頻率, 數(shù)據(jù)量, 查詢消耗等.
格式說(shuō)明如下:
總查詢次數(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ù)量.
Rows examined, 掃描的行數(shù)量.
Database, 屬于哪個(gè)數(shù)據(jù)庫(kù)
Users, 哪個(gè)用戶,IP, 占到所有用戶執(zhí)行的sql百分比
Query abstract, 抽象后的sql語(yǔ)句
Query sample, sql語(yǔ)句
除了以上的輸出, 官方還提供了很多定制化參數(shù), 是一款不可多得的好工具.


功能上有點(diǎn)瑕疵, 不僅把所有的 slow log 打印到屏幕上, 而且統(tǒng)計(jì)也只有數(shù)量而已. 不推薦使用.
mysql-log-filter, google code上找到的一個(gè)分析工具.提供了 python 和 php 兩種可執(zhí)行的腳本.
http://code.google.com/p/mysql-log-filter/
http://code.google.com/p/mysql-log-filter/

功能上比官方的mysqldumpslow, 多了查詢時(shí)間的統(tǒng)計(jì)信息(平均,最大, 累計(jì)), 其他功能都與 mysqldumpslow類似.
特色功能除了統(tǒng)計(jì)信息外, 還針對(duì)輸出內(nèi)容做了排版和格式化, 保證整體輸出的簡(jiǎn)潔. 喜歡簡(jiǎn)潔報(bào)表的朋友, 推薦使用一下.
特色功能除了統(tǒng)計(jì)信息外, 還針對(duì)輸出內(nèi)容做了排版和格式化, 保證整體輸出的簡(jiǎn)潔. 喜歡簡(jiǎn)潔報(bào)表的朋友, 推薦使用一下.
功能上, 列出了總的慢查詢次數(shù)和類型, 去重后的sql語(yǔ)句, 執(zhí)行次數(shù)及其占總的slow log數(shù)量的百分比.
從整體輸出樣式來(lái)看, 比mysql-log-filter還要簡(jiǎn)潔. 省去了很多不必要的內(nèi)容. 對(duì)于只想看sql語(yǔ)句及執(zhí)行次數(shù)的用戶來(lái)說(shuō), 比較推薦.
從整體輸出樣式來(lái)看, 比mysql-log-filter還要簡(jiǎn)潔. 省去了很多不必要的內(nèi)容. 對(duì)于只想看sql語(yǔ)句及執(zhí)行次數(shù)的用戶來(lái)說(shuō), 比較推薦.
總結(jié)
| 工具/功能 | 一般統(tǒng)計(jì)信息 | 高級(jí)統(tǒng)計(jì)信息 | 腳本 | 優(yōu)勢(shì) |
| mysqldumpslow | 支持 | 不支持 | perl | mysql官方自帶 |
| mysqlsla | 支持 | 支持 | perl | 功能強(qiáng)大,數(shù)據(jù)報(bào)表齊全,定制化能力強(qiáng). |
| mysql-explain-slow-log | 支持 | 不支持 | perl | 無(wú) |
| mysql-log-filter | 支持 | 部分支持 | python or php | 不失功能的前提下,保持輸出簡(jiǎn)潔 |
| myprofi | 支持 | 不支持 | php | 非常精簡(jiǎn) |
相關(guān)文章
php簡(jiǎn)單統(tǒng)計(jì)字符串單詞數(shù)量的方法
這篇文章主要介紹了php簡(jiǎn)單統(tǒng)計(jì)字符串單詞數(shù)量的方法,涉及php字符串分割與數(shù)組統(tǒng)計(jì)的相關(guān)技巧,需要的朋友可以參考下2015-06-06
PHP中根據(jù)IP地址判斷城市實(shí)現(xiàn)城市切換或跳轉(zhuǎn)代碼
先要獲取ip地址相當(dāng)簡(jiǎn)單,下面先介紹兩種獲取IP地址的代碼,后面需要利用QQIP庫(kù)來(lái)查找當(dāng)前IP是屬于那個(gè)IP段然后得出城市字段并返回2012-09-09
PHP使用Pear發(fā)送郵件(Windows環(huán)境)
這篇文章主要介紹了在Windows環(huán)境下,PHP使用Pear發(fā)送郵件的實(shí)現(xiàn)方法,以及Windows下安裝PHP Pear的詳細(xì)步驟,感興趣的小伙伴們可以參考一下2016-01-01
PHP生成隨機(jī)用戶名和密碼的實(shí)現(xiàn)代碼
使用PHP生成隨機(jī)數(shù)可以應(yīng)用在許多地方,比如可以設(shè)計(jì)程序的隨機(jī)密碼、模擬擲骰子游戲的應(yīng)用程序、石頭剪子布游戲應(yīng)用程序等等2013-02-02
php實(shí)現(xiàn)把url轉(zhuǎn)換迅雷thunder資源下載地址的方法
這篇文章主要介紹了php實(shí)現(xiàn)把url轉(zhuǎn)換迅雷thunder資源下載地址的方法,采用很簡(jiǎn)單的base64_encode編碼即可實(shí)現(xiàn)該功能,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2014-11-11
PHP配合微信小程序?qū)崿F(xiàn)獲取手機(jī)號(hào)碼詳解
這篇文章主要為大家詳細(xì)介紹了PHP如何配合微信小程序?qū)崿F(xiàn)獲取手機(jī)號(hào)碼功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2022-08-08


