首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪个更快?ORDER BY Timestamp或WHERE Timestamp =

哪个更快?ORDER BY Timestamp或WHERE Timestamp =
EN

Stack Overflow用户
提问于 2011-06-21 10:36:30
回答 1查看 222关注 0票数 1

我正在设置一个sqlite数据库,该数据库将监视多个物理传感器。一个单独的应用程序保存了几个月的数据...此应用程序将仅监控该数据采集。我想确保我的查询尽可能高效。

我想从感应器上提取最后几个读数。大约有20种不同类型的传感器,每种都有不同的传感器ID。

这只是为了监视目的,所以它不必精确地捕获所有数据,只需显示最近的值。

其中哪一个会更快?为什么?

代码语言:javascript
复制
sqlCommString = "SELECT * FROM Samples WHERE Timestamp = '" + DateTime10SecondsAgo + "'

sqlCommString = "SELECT * FROM Samples ORDER BY Timestamp DESC LIMIT 20"
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-06-21 10:43:22

第一个可能会更快(尽管获取最后几个样本应该是>=而不是= )。

第二个方法必须检索所有行,然后对它们进行排序(尽管索引将使排序变得不必要,在此用例中,您非常应该为该列建立索引),然后丢弃一些行。

第一个只检索需要的那些。

一般来说,尽可能快地减少数据集的大小会更有效率(有朝一日可以看看基数,如果你喜欢这种东西,这是一个很有趣的概念)。

但是,和所有的优化一样,测量,不要猜测!特别是在数据库中,查询本身只是性能方程的一部分-数据的构成也会产生重大影响。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6419759

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档