Mysql开启慢查询日志

491 阅读1分钟

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';