我们有一个 MySQL 5.1.52 Percona Server 11.6 实例,它突然开始将每个查询记录到慢查询日志中。long_query_time
配置设置为1
,但是,我们突然看到每个查询(例如,只看到一个查询花费了0.000563s
!)。结果,我们的日志文件以疯狂的速度增长。我们不得不截断 180G 的慢查询日志文件。
我尝试将 long_query_time 变量设置为一个非常大的数字,看看它是否完全停止(1000000
),但结果相同。
show global variables like 'general_log%';
+------------------+--------------------------+
| Variable_name | Value |
+------------------+--------------------------+
| general_log | OFF |
| general_log_file | /usr2/mysql/data/db4.log |
+------------------+--------------------------+
2 rows in set (0.00 sec)
show global variables like 'slow_query_log%';
+---------------------------------------+-------------------------------+
| Variable_name | Value |
+---------------------------------------+-------------------------------+
| slow_query_log | ON |
| slow_query_log_file | /usr2/mysql/data/db4-slow.log |
| slow_query_log_microseconds_timestamp | OFF |
+---------------------------------------+-------------------------------+
3 rows in set (0.00 sec)
show global variables like 'long%';
+-----------------+----------+
| Variable_name | Value |
+-----------------+----------+
| long_query_time | 1.000000 |
+-----------------+----------+
1 row in set (0.00 sec)
答案1
这听起来像log_queries_not_using_indexes
已启用。
通过执行以下操作进行检查:
mysql> show global variables like 'log_queries%';
+-------------------------------+-------+
| Variable_name | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | ON |
+-------------------------------+-------+
使用以下命令关闭它:
mysql> set global log_queries_not_using_indexes = 'off';
Query OK, 0 rows affected (0.00 sec)