繁体   English   中英

从巨大的表中优化MySQL SELECT

[英]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.

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