mysql 5.0 慢日志_MySQL的慢查询日志

慢查询日志是什么?

慢查询日志是MySQL提供的一种专门记录sql执行时间超过预先设置好阈值的语句等信息

慢查询日志怎么开启?

慢查询日志是默认关闭的!

可以通过命令进行查看慢日志的状态

show variables like '%slow_query_log%'; #查看慢日志状态

45dfb159d531ab05582c2ad1877db7f9.png

开启慢日志的命令(1代表开启,0代表关闭)

set global slow_query_log=1;

#开启慢日志,只对本次有效,重启之后还是关闭的。

如果想要永久生效的话,就需要修改my.cnf文件

在[mysqld]下添加

slow_query_log=1slow_query_log_file=/var/lib/mysql/node-slow.log #这个代表的是慢日志文件存放的路径

慢日志不在调优的时候一般是关闭的,因为开启慢日志多多少少会降低效率。

什么样的查询语句才能称为慢查询呢?慢日志会记录什么样的SQL呢?

这个是由参数long_query_time控制的,此值的默认值为10秒。

当某一条语句的执行时间大于这个参数值的时候,(等于的话不会被记录),就会被慢日志给记录下来

SHOW VARIABLES LIKE 'long_query_time%'; #查看设置的时间阈值

508334513887e3fe1bdfbb42c6701710.png

修改long_query_time的值的方法

set global long_query_time=3; #设置慢查询时间的阈值为3秒

注意:执行完上面的语句后,在此进行查看的时候,会发现值没有变过来,

这时候需要重新开一个会话,或者断开连接之后重连,更或者换一条命令进行查询,就可以看到你修改后的值了

SHOW GLOBAL VARIABLES LIKE 'long_query_time%';

5b8f669dea1d83a5cf154504a9001343.png

当然你也可以使用配置my.cnf文件的方式进行修改,在[mysqld]下添加如下参数(前题是)

slow_query_log=1slow_query_log_file=/var/lib/mysql/node-slow.log#这个代表的是慢日志文件存放的路径

long_query_time=3;

log_output=FILE

模拟一条慢查询语句

select sleep(4);#在这条sql执行期间,睡眠4秒

执行完成之后,打开慢日志文件进行查看,如下图所示

5c846524ac451f8df220ebc8b5a853a2.png

如果我们想要统计一共记录了多少条慢sql语句,可以使用如下命令

show global status like '%Slow_queries%';

e089d2bda22eedb79743d8e2a6ae97ba.png

日志分析工具mysqldumpslow

常用属性

s:表示按照何种方式排序

c:访问次数

l:锁定时间

r:返回记录

t:查询时间

al:平均锁定时间

ar:平均返回记录数

at:平均查询时间

t:即为返回前面多少条的数据:

g:后边搭配一个正则匹配模式,大小写不敏感的

举个例子:

mysqldumpslow -s r -t 10 /var/lib/mysql/node-slow.log

得到返回记录集最多的10条sql

bc8f5cb1a01d84cf2f92f5721abac551.png

这些是本人学习mysql优化,对于慢查询日志的总结,不足之处,请大家指出,谢谢

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值