mysql之慢查询日志分析
- 1.临时开启慢查询日志
- 2.永久开启慢查询日志
慢查询是指mysql提供的日志记录功能,用来记录执行时间超过设置阈值的sql语句,并将信息写入到日志文件中;
1.临时开启慢查询日志
注意:
1.以下命令需要连接进入到命令行进行执行;
2.临时开启慢查询日志,设置后无需重启服务立即生效,当服务重启后设置就会失效;
1.首先我们输入命令,查看mysql是否开启慢查询日志;
show variables like "%slow%";
如图:查询显示slow_query_log =OFF,表示为未开启慢查询记录;
输入命令进行设为开启慢查询日志:
2.开启慢查询日志
set global slow_query_log = 'ON';
3.设置慢查询日志文件存储路径;如上图,我这里是存在var目录中的;
set global slow_query_log_file = '/you_path/logfile.log';
4.设置慢查询阈值,根据需要进行设置,我这里设置10s
set global long_query_time = 10;
再次查询确认一下
show variables like "%slow%";
show variables like 'long_query’_tiem';
执行语句测试一下:
select sleep(12)
如图,设置的文件中成功记录了慢查询日志。
2.永久开启慢查询日志
永久开慢查询日志,需要修改mysql配置后重启才能生效;
首先在mysql命令行中开启和设置一次阈值:
set global slow_query_log = 'ON';
set global long_query_time = 2;
然后输入命令编辑配置文件:
vim /etc/my.cnf
在[mysqld]
中添加以下配置
#开启慢查询
slow_query_log = 1
#设置慢查询阈值
long_query_time = 2
#设置慢查询日志存储文件位置
slow_query_log_file = /path/you/logfile.log
保存后输入命令:systemctl restart mysqld
重启服务即可;
注意:slow_query_log_file设置的路径要确保有读写权限;
输入语句测试以下:
select sleep(3);
如图: