MySQL慢速日志问题 - long_query_time不会生效

时间:2014-02-28 16:13:41

标签: mysql

我已经通过慢速查询日志跟踪了一些有关慢速查询的教程。

为了测试目的,我尝试将long_query_time更改为值1,但无论我做什么,只有在达到默认时间10时,查询才会进入日志。

我试过了:

set @@GLOBAL.long_query_time = 1;
set global long_query_time = 1;

使用以下任一命令时:

show variables like '%long%';
show global variables like '%long%';

我得到变量已更改的结果。

我运行完全相同的查询,只需添加更多LEFT JOIN个条目以使其运行更长时间。每当查询运行10秒或更长时间时,它都会被记录,但是当它运行得不到时,它不会显示在日志中,即使我的所有变量看起来都说它们已被更改。

我以root身份登录MySQL,因为我做了这些更改。

我重新启动了Apache和MySQL,仍然没有骰子。

我的版本信息是:

服务器版本:5.1.63-log SUSE MySQL RPM

当我查询会话和全局变量时(我都试过),我得到了这个:

mysql> show variables like '%long%';
+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| long_query_time    | 1.000000 |
| max_long_data_size | 1048576  |
+--------------------+----------+
2 rows in set (0.00 sec)

mysql> show global variables like '%long%';
+--------------------+----------+
| Variable_name      | Value    |
+--------------------+----------+
| long_query_time    | 1.000000 |
| max_long_data_size | 1048576  |
+--------------------+----------+
2 rows in set (0.00 sec)

一般日志记录功能显然已启用,并且会重定向到TABLE,否则我根本不会在日志中输入任何条目。

如果开启设置log_queries_not_using_indexes,即使不执行1秒钟,也会开始记录每个查询。

我错过了什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

以下配置将MySQL转换为记录执行时间超过半秒的查询:

slow_query_log = 1
long_query_time = 0.5
log-slow-queries = /var/log/mysql/log-slow-queries.log
log_queries_not_using_indexes = 0