Windows下安装使用mysqldumpslow
首先已经配置好让数据库记录慢查询的SQL:http://www.javacui.com/DB/541.html
安装后以后在bin下有mysqldumpslow.pl文件,如果没有下载一个也可以
http://www.javacui.com/ueditor/php/upload/file/20210415/1618471604123103.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条
1
|
perl mysqldumpslow.pl -s l -t 1 mysql_slow.log |
比如,得到返回记录集最多的10个SQL。
1
|
perl mysqldumpslow.pl -s r -t 10 mysql_slow.log |
得到访问次数最多的10个SQL
1
|
perl mysqldumpslow.pl -s c -t 10 mysql_slow.log |
得到按照时间排序的前10条里面含有左连接的查询语句。
1
|
perl mysqldumpslow.pl -s t -t 10 -g “left join ” mysql_slow.log |
另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。
1
|
perl mysqldumpslow.pl -s r -t 20 mysql_slow.log | more |