[英]Optimizing MySQL SELECT from huge table
我经常做
SELECT * FROM sensor_data_1sec LIMIT 491160, 30
来自此表: http : //test.dev.brown.sk/sensor_data_1sec.zip
大约需要0.06s。 我觉得太多了。 MySQL服务器在装有Intel Core i7、8 GB RAM,Windows 7的PC上。
看看phpMyAdmin:
当然,缓存它的时间很少。 但是有可能使其更快地被缓存吗?
百分之一秒(或百分之一秒)就可以了。 基本规则是,用户不应等待太久,我通常将其等待半秒钟。
在您不知道它会这么慢的那段时间里,您可能会在0.06s的时间内实现某些目标吗? :-)
顺便说一句,从没有排序子句的查询中假设结果集中的特定顺序是不明智的。 通常也更喜欢显式选择列而不是使用*
。
这很慢,因为未进行深度扫描。 LIMIT中的较大偏移量非常糟糕,如果您运行EXPLAIN,您将看到它需要一个临时表来处理此问题。 而且此临时磁盘基于探针磁盘,因为它需要关闭491190条记录的内存。 因此,您现在正在丧失MySQL性能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.