数据库慢查询监控配置

MySql慢查询方法介绍

MySql 慢查询可以分析 MySql 语句查询性能问题的时候,可以再 MySql 记录中查询超过指标时间的语句,我们将超过指标时间的 SQL 语句称为 “慢查询”。MySql 自带的慢查询分析工具 mysqldumpslow 可以对慢查询日志进行分析;主要功能是统计sql的执行信息,其中包括:

  1. 出现次数(count)
  2. 执行最长时间(time)
  3. 累计总耗费时间(Time)
  4. 等待锁的时间(Lock)
  5. 发送给客户端的行总数(Rows)
  6. 扫描的行总数(Rows)

开启mysql配置

  • 在部署的mysql服务器中,配置mysql配置文件, vi etc/my.cnf ,然后在文件中添加

    # 为 1 则表示开启慢查询(记得注释不要加到配置文件中)
    slow_query_log=1
    # 0.1则表示100ms,通常生产环境配置的都是0.1
    long_query_time=0.1
    

    注: 配置完成后,重新 mysql 服务配置才能生效,默认情况下,慢查询日志生成在 /var/lib/mysql 目录下,日志名称为{hostname}_slow-query.log

    // 执行如下命令重启mysql
    systemctl restart mysqld
    

    配置成功之后,我们在重新进入mysql
    在这里插入图片描述
    慢查询开启与关闭

我们配置成功之后,连接数据库查询日志是否开启,输入如下命令校验:

show variables like '%slow_query_log%';

在这里插入图片描述
慢查询日志分析

在/usr/bin目录下,使用mysql自带命令 mysqldumpslow
常用的参数:

  • -s,是order的排序,主要有 c,t,l,r和ac,at,al,ar,分别是按照query次数,时间,lock的时间和返回的记录数来排序
  • -a,倒序排列
  • -t,是top n的意思,即为返回前面多少条的数据
  • -g,后边可以写一个正则匹配模式,大小写不敏感的
例如:mysqldumpslow -s c -t 20 host-slow.log 

上述命令分别可以看出访问次数最多的20个sql语句和返回记录集最多的20个sql。 mysqldumpslow -t 10 -s t -g “left join” host-slow.log这个是按照时间返回前10条里面含有左连接的sql语句。

图例中的命令:mysqldumpslow –s at -t 50 host-slow.log 显示出耗时最长的50个

SQL语句的执行信息

在这里插入图片描述

以Count: 32 Time=0.26s (8s) Lock=0.00s (0s) Rows=10.0 (320),wos_20120719[wos_20120719]@2host 为例:

Count: 32 该SQL总共执行32次
Time = 0.26s (8s) 平均每次执行该SQL耗时0.26秒,总共耗时32(次)*0.26(秒)=8秒。
Lock=0.00s(0s) lock时间0秒 Rows =10.0(320) 每次执行SQL影响数据库表中的10行记录,总共影响 10(行)*32(次)=320行记录

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

七月的小尾巴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值