首先已经配置好让数据库记录慢查询的SQL:http://www.javacui.com/DB/541.html
安装后以后在bin下有mysqldumpslow.pl文件,如果没有下载一个也可以
mysqldumpslow.zip
首先需要安装Perl,在windows下安装Perl,安装过程很简单,从官网 http://strawberryperl.com/ 下载windows安装包,安装好之后,测试perl -v,如果能显示版本号,表示安装成功。
mysqldumpslow是一个perl脚本,只需下载并赋权即可执行。
查看文档:
D:\MySQL Datafiles>perl mysqldumpslow.pl --help
Usage: mysqldumpslow [ OPTS... ] [ LOGS... ]
Parse and summarize the MySQL slow query log. Options are
--verbose verbose
--debug debug
--help write this text to standard output
-v verbose
-d debug
-s ORDER what to sort by (al, at, ar, c, l, r, t), 'at' is default(排序方式)
al: average lock time(平均锁定时间)
ar: average rows sent(平均返回记录数)
at: average query time(平均查询时间)
c: count(访问计数)
l: lock time(锁定时间)
r: rows sent(返回记录)
t: query time(查询时间)
-r reverse the sort order (largest last instead of first)
-t NUM just show the top n queries(返回前面n条数据)
-a don't abstract all numbers to N and strings to 'S'
-n NUM abstract numbers with at least n digits within names
-g PATTERN grep: only consider stmts that include this string(正则匹配模式,大小写不敏感)
-h HOSTNAME hostname of db server for *-slow.log filename (can be wildcard),
default is '*', i.e. match all
-i NAME name of server instance (if using mysql.server startup script)
-l don't subtract lock time from total time
使用示例:
锁定时间最长的前10条
perl mysqldumpslow.pl -s l -t 1 mysql_slow.log
比如,得到返回记录集最多的10个SQL。
perl mysqldumpslow.pl -s r -t 10 mysql_slow.log
得到访问次数最多的10个SQL
perl mysqldumpslow.pl -s c -t 10 mysql_slow.log
得到按照时间排序的前10条里面含有左连接的查询语句。
perl mysqldumpslow.pl -s t -t 10 -g “left join” mysql_slow.log
另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。
perl mysqldumpslow.pl -s r -t 20 mysql_slow.log | more
这里呢我把pl文件直接放到了log文件夹下,使用时更方便。
END