我正在使用mysql:5.5.31-0ubuntu0.12.04.1-log(Ubuntu)我启用慢速日志查询,慢速日志查询时间设置为2秒 详情:
show variables like 'slow_launch_time';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| slow_launch_time | 2 |
+------------------+-------+
1 row in set (0.00 sec)
并在my.cnf:
long_query_time = 2
这意味着任何查询都需要超过2秒,它将存储在mysql慢速日志查询中。
当我尝试使用select sleep(1)时;选择睡眠(2);选择睡眠(3); 并查看慢速日志查询,只有sleep(2)和sleep(3)保存在慢速日志查询中 Query_time:#Query_time:2.000263和#Query_time:3.000278。 但我看到很多Query_time小于2秒的查询也保存在慢速日志查询中
了解更多详情:
# Query_time: 0.001775 Lock_time: 0.000154 Rows_sent: 1 Rows_examined: 120
为什么这种类型的查询保存在我的慢速日志中,我不明白?
答案 0 :(得分:1)
可能是因为log_queries_not_using_indexes
已开启:
如果在启用慢查询日志的情况下使用此选项,则会记录预期检索所有行的查询。见Section 5.2.5, “The Slow Query Log”。此选项并不一定意味着不使用索引。例如,使用完整索引扫描的查询使用索引但会被记录,因为索引不会限制行数。