十六. MySQL 慢查询日志

一. MySQL 慢查询日志

  1. 什么是慢查询: 假设执行一条查询sql语句,在指定时间内没有返回执行结果,说明查询过慢,对这条执行语句进行日志记录,慢查询就是指记录的这个日志(注意点: 慢查询日志记录需要查询日志记录到文件,除了排查问题以外一般情况下建议关闭)
  2. 查询当前mysql服务器慢查询的配置(默认是关闭,开启后默认10未返回结果进行慢查询日志记录): show variables like ‘slow_query%’ 下方的’slow_query_log_file’ 文件路径就是记录慢查询日志的文件
    在这里插入图片描述
  3. 开启慢查询: SET GLOBAL SLOW_QUERY_LOG=‘ON’;或者使用"set global slow_query_log=1"设置开启,但是后者开启后MySql重启会失效
    在这里插入图片描述
  4. 查询慢查询记录日志时间: SHOW VARIABLES LIKE ‘long_query_time’; 默认10秒
    在这里插入图片描述
  5. 修改记录慢查询日志的触发时间(多长时间内未返回结果进行记录,注意点由于保持当前会话,修改完毕后需要重启数据库连接,再去查看才会生效): SET GLOBAL LONG_QUERY_TIME=5;
    在这里插入图片描述
  6. 通常情况下慢查询日志文件在/var/bil/mysql/文件名-slow.log(默认文件名 主机名-slow.log)
  7. 慢查询日志文件解释:
    在这里插入图片描述

小总结

  1. 查询当前mysql服务器慢查询的配置
show variables like 'slow_query%'
  1. 开启慢查询: SET GLOBAL SLOW_QUERY_LOG=‘ON’;或者使用"set global slow_query_log=1"
SET GLOBAL SLOW_QUERY_LOG='ON'
#下方设置开启,但是后者开启后MySql重启会失效
SET GLOBAL SLOW_QUERY_LOG=1
  1. 查询慢查询记录日志时间, 默认10秒
SHOW VARIABLES LIKE 'long_query_time';
  1. 修改记录慢查询日志的触发时间为5秒
SET GLOBAL LONG_QUERY_TIME=5;
  1. 测试时为什么不生效的问题:需要重新连接,或新开一个会话才会看到修改后的值与生效
SHOW VARIABLES LIKE 'log_query_time%';

SHOW GLOBAL VARIABLES LIKE 'log_query_time';
  1. 慢查询日志分析看上面
  2. 总结配置开启慢查询日志永久生效,记录执行超过3秒的sql
    在这里插入图片描述

二. mysqdumpslow日志分析工具

  1. 解释: 生产上开启慢查询以后可以使用pt-query-digest或mysqdumpslow工具对慢查询日志进行分析,对sql进行优化处理
  2. 打开mysqdumpslow 解释文档命令: “mysqldumpslow --help”
    在这里插入图片描述
  3. 对mysqdumpslow命令参数解释
    在这里插入图片描述
  4. 使用举例
    在这里插入图片描述
//"-g 执行sql类型" 例如查看前10条"select"相关的慢查询日志
"./mysqldumpslow -s t -t 10 /慢查询日志文件所在目录/文件名-slow.los -g select"
  1. 执行完mysqdumpslow命令后返回解释
    在这里插入图片描述
  2. 另外还有三方提供的慢查询日志分析工具例如"Pt_query_digest" 但是该工具是基于python的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值