开启慢查询
MySQL 支持通过以下方式开启慢查询:输入命令开启慢查询(临时),在 MySQL 服务重启后会自动关闭;
配置 my.cnf(Windows 是 my.ini)系统文件开启,修改配置文件是持久化开启慢查询的方式。
方式一:通过命令开启慢查询
步骤 1:查询 slow_query_log 查看是否已开启慢查询日志:
show variables like '%slow_query_log%';
mysql> show variables like '%slow_query_log%';
+---------------------+-----------------------------------+
| Variable_name | Value |
+---------------------+-----------------------------------+
| slow_query_log | OFF |
| slow_query_log_file | /var/lib/mysql/localhost-slow.log |
+---------------------+-----------------------------------+
2 rows in set (0.01 sec)
步骤 2:开启慢查询命令:
set global slow_query_log='ON';
步骤 3:指定记录慢查询日志 SQL 执行时间得阈值(long_query_time 单位:秒,默认 10 秒)。
如下我设置成了 1 秒,执行时间超过 1 秒的 SQL 将记录到慢查询日志中:
set global long_query_time=1;
步骤 4:查询 “慢查询日志文件存放位置”。
show variables like '%slow_query_log_file%';
mysql> show variables like '%slow_query_log_file%';
+---------------------+-----------------------------------+
| Variable_name | Value |
+---------------------+-----------------------------------+
| slow_query_log_file | /var/lib/mysql/localhost-slow.log |
+---------------------+-----------------------------------+
1 row in set (0.01 sec)
slow_query_log_file 指定慢查询日志的存储路径及文件(默认和数据文件放一起)。
步骤 5:核对慢查询开启状态,需要退出当前 MySQL 终端,重新登录即可刷新。
配置了慢查询后,它会记录以下符合条件的 SQL:查询语句
数据修改语句
已经回滚的 SQL
方式二:通过配置 my.cnf(Windows 是 my.ini)系统文件开启(版本:MySQL 5.5 及以上)
在 my.cnf 文件的 [mysqld] 下增加如下配置开启慢查询,如下图:
# 开启慢查询功能
slow_query_log=ON
# 指定记录慢查询日志SQL执行时间得阈值
long_query_time=1
# 选填,默认数据文件路径
# slow_query_log_file=/var/lib/mysql/localhost-slow.log