1. 配置
- 查看慢查询开关及日志文件
mysql> show variables like '%slow_query_log%';
+---------------------+--------------------+
| Variable_name | Value |
+---------------------+--------------------+
| slow_query_log | ON |
| slow_query_log_file | /db/mysql/slow.log |
+---------------------+--------------------+
2 rows in set
- slow_query_log:是否已经开启慢查询
- slow_query_log_file:慢查询日志文件路径
- 查看慢查询时长设置
即超过多少秒的查询就写入日志
mysql> show variables like '%long_query_time
%';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+
1 row in set
注:单位是秒
- 设置慢查询
- 开启慢查询
mysql> set global slow_query_log = on;
Query OK, 0 rows affected
- 时长设置,根据自己的需求设置时长,这里我设置为1毫秒
mysql> set global long_query_time=0.001;
Query OK, 0 rows affected
2. 日志示例
# Time: 2021-08-05T17:55:00.014720+08:00
# User@Host: test[test] @ [127.0.0.1] Id: 622064
# Query_time: 0.002651 Lock_time: 0.000218 Rows_sent: 0 Rows_examined: 945
SET timestamp=1628157300;
select * from tb_user;
- Time:执行sql的时刻
- Query_time:执行耗时
- 最后一行是sql