Mysql DBA基础第一篇(2):慢查询日志以及他的分析工具mysqldumpslow

一.慢查询日志的作用什么?

顾名思义,他可以帮我们定位那些执行时间很长的查询(bad sql)。
通常情况下,如果我们优化了TOP 10(最昂贵的10个查询),我们可以很显而易见的看到Mysql性能整体的提升。
以前在医疗行业做的时候(sqlserver数据库),也是通过一些系统视图/函数等查询到耗CPU/IO最多的那些SQL,优化他们后,HIS系统整体性能的提升是非常可观的。

二.开启慢查询日志的开启以及设置阈值

1.我们可以通过以下命令查看慢查询日志是否开启。

show variables like '%slow_query_log%'; # 我这是默认开启的。

在这里插入图片描述2.OFF就是关掉了的意思。我们可以通过set global slow_query_log = ON;将他重新打开。下面那个slow_query_log_file就是慢查询日志所在的地方。
在这里插入图片描述3.设置long_query_time的阈值。
所有执行时间超过long_query_time设定的秒数的SQL语句都会被记录到慢查询日志里。
我这里设置了1秒是用作演示的,具体应该根据业务系统的实即情况去设置阈值。
在这里插入图片描述

三.玩一下+官方分析工具mysqldumpslow入门

1.手动造一个2.52sec的查询,超过了我刚刚设置的阈值(1s)了。
在这里插入图片描述2.查看慢查询日志(这边的路径就是前面参数slow_query_log_file的路径)。
□ Time:执行SQL的开始时间。这里是2021-04-05 06:49
□ User@Host:执行查询的用户和客户端IP。
□ Query_time:查询耗时。
□ Rows_sent:返回了多少行记录(结果集)。
□ Rows_examined:检查了多少条记录。

在这里插入图片描述3.使用mysqldumpslow工具分析慢查询日志。
当我们的慢查询日志很多的时候我们不可能通过cat这种命令直接去查,所以我们可以通过mysqldumpslow命令(官方自带)进行更快速的分析,并且定位哪些慢SQL。
1.访问时间最长的10个sql语句的命令如下。
我在这边查询了3次我的示例表。
在这里插入图片描述□ Count:执行的次数。
□ Time :时间。(括号里面那个是总的时间)

在这里插入图片描述
2.访问次数最多的10个sql语句的命令如下。(就是按照count排序)
在这里插入图片描述

四.第三方分析工具pt-query-digest

他比起mysqldumpslow更友好更强大,感兴趣的朋友可以自己研究。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值