我有一个 MySQL 慢查询日志,显示相同的查询在几分钟内运行了两次。在此期间,表中没有添加任何内容,并且任何记录上的关键字段都没有更改。为什么检查的行数会不同?
# Time: 130615 11:35:59
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 32.198606 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 68851
SET timestamp=1371314159;
SELECT * FROM `projectaddresses` WHERE `ID_PROJECT` = 77 ORDER BY `ID_PROJECTADDRESS` ASC LIMIT 25 OFFSET 0;
# Time: 130615 11:37:22
# User@Host: root[root] @ localhost [127.0.0.1]
# Query_time: 30.030193 Lock_time: 0.000000 Rows_sent: 0 Rows_examined: 163319
SET timestamp=1371314242;
SELECT * FROM `projectaddresses` WHERE `ID_PROJECT` = 77 ORDER BY `ID_PROJECTADDRESS` ASC LIMIT 25 OFFSET 0;
此查询通常在一秒钟内返回。ID_PROJECTADDRESS 是主键,ID_PROJECT 上有一个基数为 110 的索引。
我在 MySQL 论坛上发现的唯一内容表明索引统计信息已更新,但我认为这在这里没有意义。
我认为这个查询通常运行得很快并且没有出现在慢查询日志中的事实与同一问题有关。任何关于该问题可能是什么的想法都将不胜感激。