最基本的是mysql自帶的mysqlslowdump
用起來很簡單:
mysqldumpslow -s c -t 20 host-slow.log
參數:
1. -s,排序,c,t,l,r以及ac,at,al,ar分別是按照query次數,時間,lock時間,返回記錄排序。加a就是倒序。
2. -t,top n,跟上數字就是算出top多少條
3. -g,跟正則表達式。
先進一點的是mysqlsla,也是一個perl腳本,
網址:http://hackmysql.com/mysqlsla
同時這個網站也有其他一些工具,看起來都不錯。
這個需要小安裝一下:
tar xvfz mysqlsla-2.03.tar.gz
cd mysqlsla-2.03
perl Makefile.PL
make
make install
注意需要perl的支持!
#yum install perl
#yum install perl-Time-HiRes
後者是因為第一次運行的時候說2095行報錯,於是看了一下,2095行是
use Time::HiRes qw(gettimeofday tv_interval);
安裝下就好了。不復雜。
運行也比較簡單:
— Slow log: mysqlsla -lt slow slow.log
— General log: mysqlsla -lt general general.log
— Binary log: mysqlbinlog bin.log | mysqlsla -lt binary
mysqlsla -lt slow /data/database/slow.log
注意lt=log type,他其實也可以分析mysql的其他日志類型的。
mysqlsla 優點是分析結果很清晰,推薦使用