MySQL慢查询

MySQL慢查询

mysql慢查询

在MySQL中,提供了对慢查询的语句的检测与记录能力。

MySQL的慢查询日志是MySQL提供的一种日志记录,用来记录在MySQL中响应时间超过阈值的语句,具体指运行时间超过long_query_time值的SQL,则会被记录到慢查询日志中(日志可以写入文件或者数据库表,如果对性能要求高的话,建议写文件)。默认情况下,MySQL数据库是不开启慢查询日志的,long_query_time的默认值为10(即10秒,通常设置为1秒),即运行10秒以上的语句是慢查询语句

查看并设置慢查询开启

1.mysql -h localhost -u root - p输入密令登录
2.show variables like ‘%slow%’; 查看与slow相关的变量
在这里插入图片描述
这里可以看到slow_query_log=OFF默认慢查询为关闭状态
3.set global slow_query_log=ON;设置全局变量slow_query_log开启
在这里插入图片描述

查看并设置慢查询时间阈值

1.show variables like ‘%long%’;
在这里插入图片描述可以看到mysql默认的时间阈值为10秒
2.set long_query_time=1;设置时间阈值为1秒
在这里插入图片描述
此时慢查询时间阈值被修改为1秒,意味着当sql执行所需时间超过1秒则会被记录在慢查询日志中

查看并设置慢查询日志存储位置

当慢查询时间被开启且时间阈值被设置后,执行时间超过阈值的sql会被记录在慢查询日志中,慢查询日志可以记录于文件或表中,下面设置日志记录位置并测试查看
1.show variables like ‘%log_output%’;
在这里插入图片描述默认为文件存储日志
2.show variables like ‘%log_file’;
在这里插入图片描述
看到文件存储在本地的位置sloe_query_log_file
3.测试file存储慢查询日志
之前已将时间阈值修改为1秒,写一个查询时间超过1秒的sql,再在慢查询日志文件中查看是否被记录
select sleep(3); 休眠3秒
在这里插入图片描述
根据上面的日志存储位置去查看本地慢查询文件

在这里插入图片描述这里的ProgramDate一般为隐藏文件,在查看中将隐藏的文件夹显示
在这里插入图片描述利用文本编辑工具打开后,可以看到刚才的休眠3秒sql被记录在日志文件中
在这里插入图片描述修改日志文件存储于表
慢查询日志可以存储在文件或表中,默认为文件,现在修改为存储于表中。mysql自带的数据库mysql中有表slow_log用于存储慢查询日志
use mysql;show tables;
在这里插入图片描述select * slow_log limit 10;
在这里插入图片描述
此时表中没有任何日志
set global log_output=‘TABLE’;修改日志存储于表
在这里插入图片描述再测试
select sleep(3);
在这里插入图片描述此时slow_log表中已经有一条记录。
慢查询日志的存储位置可以同时存储于文件和表中,
set global log_output=‘FILE,TABLE’;用逗号隔开同时设置存储于文件和表中
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

@nanami

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

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

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

打赏作者

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

抵扣说明:

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

余额充值