Mysql开启慢查询日志


Mysql慢查询,通常用于定位线上数据库的sql执行情况,抓出那些响应时间长的sql出来,然后进行sql优化, 达到系统优化响应速度的目的,此文简单记录mysql中如何进行慢查询的操作,详细如下:

0.查看慢查询开启情况

show variables like 'slow_query%';
mysql> show variables like 'slow_query%';
+---------------------+------------------------------------------------------------------+
| Variable_name       | Value                                                            |
+---------------------+------------------------------------------------------------------+
| slow_query_log      | OFF                                                              |
| slow_query_log_file | /home/testuser/mysql-5.7.35/data/icnoclxserver-slow.log |
+---------------------+------------------------------------------------------------------+
2 rows in set (0.01 sec)

可看到当前状态slow_query_log=OFF,即为未开启

slow_query_log_file:如果开启了慢查询,则相应的慢sql会打印到这个文件中.

1.慢查询开启

set global slow_query_log='ON';

默认的慢查询日志文件位置通过步骤0中的show variables like 'slow_query%';查看,如果想修改slow_query_log_file的位置,通过以下命令修改,如:

set global slow_query_log_file=your_logfile_path;

2.查看默认的慢查询时间配置

通过show variables like ‘long_query_time’;查看默认设置的多少时间为慢查询时间,单位s,默认为10秒

mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

3.修改慢查询时间配置

如:以下将慢查询时间设置成5秒

set global long_query_time=5;

4.恢复成慢查询关闭状态

调试成慢查询后,如果希望关闭慢查询状态,执行: set global slow_query_log=‘OFF’;

set global slow_query_log='OFF';

5.log_queries_not_using_indexes

log_queries_not_using_indexes这个参数如果设置成ON,则未走索引的sql语句都认为是慢查询sql,容易混消,看情况开启,一般设置成OFF

6.show full processlist

可以通过show full processlist看慢sql,也可以用以下的sql语句来更灵活的查询。

select * from information_schema.processlist where COMMAND !='Sleep' order by time desc limit 10 \G
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值