mysqldumpslow
这是一款mysql自带的慢查询工具,个人使用下来发现,可以满足在很多慢日志中找到有问题的慢的sql,并且可以进行sql排序。属于一种短小精干的工具。
命令大概形式: slowlog是需要分析的日志
mysqldumpslow -s c -t 10 {$PATH}/slow-log
主要参数:
A: -s, 是sort的意思,表示按照何种方式排序,c、t、l、r分别是按照记录次数、时间、查询时间、返回的记录数来排序,ac、at、al、ar,表示相应的倒序;
B: -t, 是top n的意思,即为返回前面多少条的数据;
C: -g, 是grep的意思,后边可以写一个正则匹配模式,大小写不敏感的。
得到返回记录集最多的10个SQL。
mysqldumpslow -s r -t 10 /var/lib/mysql/test_mysql_slow.log
得到访问次数最多的10个SQL
mysqldumpslow -s c -t 10 /var/lib/mysql/test_mysql_slow.log
得到按照时间排序的前10条里面含有左连接的查询语句。
mysqldumpslow -s t -t 10 -g ”left join” /var/lib/mysql/test_mysql_slow.log
另外建议在使用这些命令时结合 | 和more 使用 ,否则有可能出现刷屏的情况。
mysqldumpslow -s r -t 20 /var/lib/mysql/test_mysql_slow.log | more
mysqlsla
这个是一款来自github的开源分析工具。功能更加全面,可以查看各种慢sql占的比例
安装
1.下载源码
源码路径:https://github.com/daniel-nichter/hackmysql.com
源码存放路径:/usr/local/src
2.安装依赖
yum -y install perl-ExtUtils-Embed perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker perl-Time-HiRes perl-DBI perl-DBD-MySQL git
3.在hackmysql目录下安装并编译文件
perl Makefile.PL
在这里插入图片描述
make && make install
在这里插入图片描述
完成!
常用方法
mysqlsla -lt slow -top 20 /var/lib/mysql/test_mysql_slow.log > /tmp/select.log