Mysql之慢查询日志详解

9 篇文章 0 订阅
9 篇文章 0 订阅

1.什么是慢查询日志?

慢查询日志是MySQL提供的一种日志记录,用来记录响应时间超过阀值的SQL语句。
如果某条SQL语句运行时间超过long_query_time设定的值,就会被记录到慢查询日志中。
long_query_time的默认值为 10(10秒)
由他来查看哪些SQL超出了我们的最大忍耐时间值,
比如一条sql执行超过5秒钟,我们就算慢SQL,希望能 收集超过5秒的sql,结合之前explain进行全面分析

2.如何使用

默认情况下,MySQL 数据库没有开启慢查询日志,需要我们手动来设置这个参数

如果不是调优需要的话,一般不建议启动该参数,因为开启慢查询日志会将SQL语句写入日志,因此或多或少带来一定的性能影响。

SQL语句 说明

命令详细解释
SHOW VARIABLES LIKE ‘%slow_query_log%’查看慢查询日志是否开启(默认OFF)
set global slow_query_log=1开启慢查询日志
set global slow_query_log=0关闭慢查询日志
SHOW VARIABLES LIKE ‘long_query_time%’查看慢查询设定阈值(默认10秒)
set long_query_time=5设定慢查询阈值为5秒 (单位:秒 )

在这里插入图片描述
注意:

set global slow_query_log=1开启慢查询日志,仅对当前数据库生效,MySQL重启后失效。

如果需要永久生效,则需要修改my.ini配置文件,在[mysqld]下增加 slow_query_log = 1、slow_query_log_file = mysql路径下\data\layman-slow.log、long_query_time = 5和log_output = FILE(和数据库查询的一致)

永久生效

[mysqld]
#开启慢查询 
slow_query_log = 1 
#设置日志路径
slow_query_log_file = mysql路径下\data\layman-slow.log
#设置慢查询阈值为5秒
long_query_time = 5
log_output = FILE

3.日志分析工具

生产环境中手工查找,分析日志,非常的耗费时间,因此MySQL提供了日志分析工具mysqldumpslow

帮助信息
在这里插入图片描述

--获取返回集最多的10条SQL
mysqldumpslow -s r -t 10mysql路径下\data\layman-slow.log
--获取访问次数最多的10条SQL
mysqldumpslow -s c -t 10 mysql路径下\data\layman-slow.log
--获取按时间排序的前10条含有LEFT JOIN的SQL语句
mysqldumpslow -s t -t 10 -g "LEFT JOIN" mysql路径下\data\layman-slow.log
--结合|more使用,否则有可能会爆屏
mysqldumpslow -s r -t 10 mysql路径下\data\layman-slow.log |more

在这里插入图片描述
附加
慢查询肯定需要大量数据做测试,但是我们又不能一条一条的手动添加,所以我们可以借助mysql里的函数和存储过程批量添加数据。

函数和存储过程

在这里插入图片描述
创建随机字符串函数

在这里插入图片描述
在这里插入图片描述
创建存储过程,调用上面的字符串随机函数,插入员工表
在这里插入图片描述
创建存储过程,调用上面的字符串随机函数,插入部门表

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
添加50万数据
在这里插入图片描述
在这里插入图片描述
数据添加完成。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值