繁体   English   中英

长时间响应,浮动错误

[英]long time respond, floating error

我有一个漂浮的问题

mysql  Ver 14.14 Distrib 5.1.49, for debian-linux-gnu (i686) using readline 6.1  
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=10.10
DISTRIB_CODENAME=maverick
DISTRIB_DESCRIPTION="Ubuntu 10.10"

这样的结果

mysql> SELECT `offers`.* FROM `offers` WHERE (created_at > '2011-12-12 07:00:00') ORDER BY updated_at DESC LIMIT 15 OFFSET 0
-> ;
Empty set (44.00 sec)

100个类似的结果

mysql> SELECT `offers`.* FROM `offers` WHERE (created_at > '2011-12-12 07:00:00') ORDER BY updated_at DESC LIMIT 15 OFFSET 0;
Empty set (0.00 sec)

似乎除了我以外没有人可以访问数据库和锁表
我不明白最新情况
在开发上带有4GM DDR3的AMD Athlon X4和在Linode 512上计划Ubuntu 10.4的相同麻烦
有没有人有想法?

在这种情况下,没有浮动问题,
offers表的机会很大,
并且您在created_at列上没有索引

MySQL需要执行全表扫描以确定多少匹配(即使为空)。
首次执行后,结果存储到mysql查询缓存(内存)中,
如果自第一个查询以来没有更新数据,它将用于后续相同的查询。

它解释了为什么第二个查询占用零秒。

通常,当你有疑虑时,
做这个 :-

desc extended SELECT `offers`.* FROM `offers` 
WHERE (created_at > '2011-12-12 07:00:00');

它将解释mysql如何进行查询优化

它可能是查询缓存。 第一个查询执行正常,其他100个查询仅从查询缓存中执行。 尝试执行以下操作以确保查询缓存负责此奇怪的行为:

SELECT SQL_NO_CACHE `offers`.* FROM ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM