前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL慢日志分析工具~mysqldumpslow

MySQL慢日志分析工具~mysqldumpslow

作者头像
AsiaYe
发布2022-07-27 15:52:22
2.2K0
发布2022-07-27 15:52:22
举报
文章被收录于专栏:DBA随笔DBA随笔DBA随笔

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工具,它的分析报告会更加详细。但是分析的耗时也会相应增加。这个工具使用也比较简单,之前的文章中也有介绍过。

使用pt-query-digest分析mysql慢日志

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

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-06-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DBA随笔 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档