资讯

展开

MySQL慢日志分析工具~mysqldumpslow

作者:快盘下载 人气:

mysqldumpslow慢日志分析工具

01

mysqldumpslow工具介绍

作为一名DBA,分析MySQL数据库的慢日志是一项经常会遇到的任务,今天我们来看下mysql官方自带的慢日志分析工具mysqldumpslow。

mysqldumpslow工具可以用来分析mysql的slowlog日志文件,常用几个参数:

-a

不要显示的抽象出来SQL指纹,这里解释下SQL指纹的概念。

例如,对于下面2个SQL语句:

select * from table where id=1;

select * from table where id=2;

这2个SQL的SQL指纹都是一样的,它们都可以抽象出来下面的查询模型:

select * from table where id=xxx ;

如果使用了-a,就不会抽象出来SQL指纹,会直接显示SQL;相反,不使用-a,则会抽象出来SQL指纹。

-n

抽象出来的数字至少包含多少位(这个选项一般很少用)

-g

结果中使用grep过滤(其实这个功能没什么必要,我们可以执行完成之后直接用grep命令过滤,更加灵活。)

-l

不要从总时间中减去锁的时间

-s

排序方法,可选的值有:

t,at :按照慢SQL查询时间或者平均时间排序

l,al:按照慢SQL加锁时间或者平均加锁时间

r,ar:按照慢SQL返回行数或者平均返回行数

c:按照慢SQL的出现次数

-t

代表选择输出结果中的top N

02

具体案例分析

常见的一种使用方法如下:

mysqldumpslow -a -s t -t 4 -v slow.log

代表按照SQL执行时间,返回slowlog中前4条慢SQL,并且不返回SQL指纹,返回SQL的真实文本。

[root@ ]# /usr/local/mysql-8.0.19/bin/mysqldumpslow -a  -s t -t 4 -v  slow.log 

Reading mysql slow query log from slow.log

Count: 2  Time=54.47s (108s)  Lock=0.00s (s)  Rows=424.0 (), superdba[superdba]@[10.xx.3.129]
  select distinct port,ip,sname ,hit_size  from collect.mysql_hit where create_time > DATE_SUB((select  max(create_time) from  collect.mysql_hit where port = ),INTERVAL  MINUTE) and hit_size < and sname='mdb'  order by hit_size desc

Count:   Time=97.75s (s)  Lock=0.00s (s)  Rows=1.0 (), superdba[superdba]@[10.xx.3.129]
  select count() from mysql_hit where   create_time > DATE_SUB(SYSDATE(),INTERVAL  MINUTE) and hit_size <  and   sname='mdb'

Count:   Time=92.98s (s)  Lock=0.00s (s)  Rows=254.0 (), superdba[superdba]@[10.xx.3.129]
  select distinct(port),ip,sname,hit_size from mysql_hit where   create_time > DATE_SUB(SYSDATE(),INTERVAL  MINUTE) and hit_size <  and   sname='mdb'

Count:   Time=90.47s (s)  Lock=0.00s (s)  Rows=552.0 (), superdba[superdba]@[10.xx.3.129]
  select distinct(port),ip,sname,hit_size from mysql_hit where   create_time > DATE_SUB(SYSDATE(),INTERVAL  MINUTE) and hit_size <  and   sname='mdb'

我们按照SQL执行时间(也就是括号内的时间来进行排序),

并显示出top 4 的慢日志分析结果。

03

总结

mysqldumpslow工具的分析结果比较简单,但是分析慢日志的速度整体还是比较快的。可以用作快速分析慢日志的一个参考工具。

在percona-toolkit工具包中,还有一个类似的工具,叫pt-query-digest工具,它的分析报告会更加详细。但是分析的耗时也会相应增加。这个工具使用也比较简单,之前的文章中也有介绍过。

大家可以根据自己的实际情况选择使用哪一个。如果只想快速简单分析,mysqldumpslow是一个好的选择,如果要更加详细的分析报告,则可以考虑pt-query-digest工具。

加载全部内容

相关教程
猜你喜欢
用户评论
快盘暂不提供评论功能!