MySQL COUNT(*)以指数方式放慢

时间:2015-08-21 12:52:59

标签: mysql database performance

我有一个观察数据库。每个观察包含站标识符等。为了更新我们的电台列表,我想知道哪些电台在过去30天内观察了超过720次。但我发现了一些有趣的东西只是为了踢,我开始写信打破了它。例如,

SELECT station,COUNT(station) FROM observations WHERE station > "C" AND 
station < "D" GROUP BY station HAVING COUNT(station) > 720 LIMIT 100;

此查询需要1.51秒才能完成,返回100行。接下来我把

SELECT station,COUNT(station) FROM observations WHERE station > "C" AND 
station < "D" GROUP BY station HAVING COUNT(station) > 720 LIMIT 200;

此查询耗时5.58秒。好吧,我认为它可能不应该花那么长时间,但我会活下去。最后,我试过

SELECT station,COUNT(station) FROM observations WHERE station > "C" AND 
station < "D" GROUP BY station HAVING COUNT(station) > 720 LIMIT 300;

这需要花费4到28秒才能完成!

我想知道是否有人有理论解释为什么计数似乎会变得更快&#34;因为我提高了查询的限制。另外,我不是MySQL的专业人士,我只是用它来把东西放到我的csv文件中,所以我可以用C ++来追踪它们。我的查询本身有什么导致问题吗?或者COUNT()只是慢?

0 个答案:

没有答案