为什么mysql慢速日志会报告这些非慢速查询

时间:2012-07-30 09:14:55

标签: mysql mysql-slow-query-log

我的mysql服务器配置了long_query_time = 2,但我仍然看到在慢查询日志中报告的这些查询似乎很快:

# Time: 120730  5:06:41
# User@Host: <user> @ <Host> [<IP>] 
# Query_time: 0.000412  Lock_time: 0.000060 Rows_sent: 5  Rows_examined: 5
SET timestamp=1343639201;
SELECT album_id FROM `TB_albums` where album_id!='res_4fe4333271bda7.42833845' and deleted is NULL order by `created_time` desc limit 5;

正如您所见,Query_time:0.000412 Lock_time:0.000060似乎低于2秒

您有什么想法会报告这些“快速”查询吗?

4 个答案:

答案 0 :(得分:4)

MySQL还会记录不使用索引的查询

my.cnf中的选项log-queries-not-using-indexes用于控制它。我可以从my.cnf的这个片段中看到我的关闭(通过评论)


# Here you can see queries with especially long duration
log_slow_queries        = /var/log/mysql/mysql-slow.log
long_query_time = 2
#log-queries-not-using-indexes


如果您无权访问my.cnf,可以使用SQL

进行检查


mysql> show variables like 'log_queries_not_using_indexes';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF   |
+-------------------------------+-------+
1 row in set (0.00 sec)



希望有所帮助!

克里斯

答案 1 :(得分:1)

检查变量log-queries-not-using-indexes

show variables like '%log_queries_not_using_indexes%';
+-------------------------------+-------+
| Variable_name                 | Value |
+-------------------------------+-------+
| log_queries_not_using_indexes | OFF   | 
+-------------------------------+-------+

对于您的情况,它必须设置为OFF,如果为ON,则可以在log_queries_not_using_indexes = OFF文件中设置my.cnf,然后重新启动MySQL服务器。

答案 2 :(得分:0)

AFAIK MySQL测量从查询提交到获取阶段结束的数据获取查询的查询时间。这意味着,像

Start timer
Start fast SELECT query
Wait for result 
Check timer and note time
sleep 2 seconds
fetch query results
Stop timer

将以noted time<2send time>2s结束,慢查询日志会在较长时间内触发。

答案 3 :(得分:0)

manual,您需要检查与查询显示查询日志相关的其他配置。

服务器按以下顺序使用控制参数来确定是否将查询写入慢查询日志:

  

1.查询必须不是行政声明,或者   必须指定--log-slow-admin-statements。

     

2.查询必须至少使用long_query_time秒,或者必须启用log_queries_not_using_index并且查询不使用   行查找的索引。

     

3.查询必须至少检查过min_examined_row_limit行。

     

4.不得根据log_throttle_queries_not_using_indexes设置禁止查询。