SQL优化教程08-SQL排查

慢查询日志

检查是否开启慢查询日志

慢查询日志是MySQL提供的一种日志记录,用于记录MySQL中相应时间超过阈值的SQL语句。
慢查询日志默认是关闭的,建议开发调优时打开,最终部署时关闭。

检查是否开启了慢查询日志:

show variables like '%slow_query_log%'

临时开启:

set global slow_query_log=1;

永久开启:
在/etc/my.cnf中的mysqld中追加配置:

vi /etc/my.cnf 打开文件
slow_query_log=1
slow_query_log_file=【路径和文件名自己指定】

在这里插入图片描述

慢查询阈值设置

慢查询阈值查询:

show variables like '%long_query_timie%';

临时设置阈值:

set global long_query_time=5;设置完成后,重新登录生效(不需要重启服务)

永久设置阈值:
在/etc/my.cnf 的mysqld中追加配置

vi /etc/my.cnf
long_query_time=【阈值】;

测试慢查询

(1)通过日志查看慢查询情况

在MySQL中查询超过阈值的SQL记录:

show global status like '%slow_queries%'; ——可以查询到超出阈值的记录数量

慢查询的sql被记录在日志中,可以通过日志查看。

在这里插入图片描述

(2)通过mysqldumpslow工具查看慢查询情况

mysqldumpslow 常用命令:
s:排序方式
r:逆序
l:锁定时间
g:正则匹配模式

示例:
(1)获取返回记录最多的3个SQL

mysqldumpslow -s r -t 3 /【日志路径】

(2)获取访问次数最多的3个SQL

mysqldumpslow -s c -t 3 /【日志路径】

(3)按照时间排序,前10条包含 left join查询语句的SQL

mysqldumpslow -s t -t 10 "left join" /【日志路径】

教程目录

SQL优化教程01-MySQL分层
SQL优化教程02-SQL解析
SQL优化教程03-B树和索引
SQL优化教程04-explain的用法
SQL优化教程05-优化案例1单表查询
SQL优化教程06-优化案例2多表查询
SQL优化教程07-避免索引失效的原则
SQL优化教程08-SQL排查
SQL优化教程09-锁机制

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值