【发布时间】:2011-06-21 10:43:22
【问题描述】:
我正在建立一个 sqlite 数据库,它将监控许多物理传感器。一个单独的应用程序正在将数据保存几个月......这个应用程序将只监视该数据采集。我想确保我的查询尽可能高效。
我想从传感器中提取最后几个读数。将有大约 20 种不同类型的传感器,每种传感器都有不同的传感器 ID。
这只是为了监控目的,所以它不必精确捕获所有数据,只显示最近的值。
哪些会更快?为什么?
sqlCommString = "SELECT * FROM Samples WHERE Timestamp = '" + DateTime10SecondsAgo + "'
sqlCommString = "SELECT * FROM Samples ORDER BY Timestamp DESC LIMIT 20"
【问题讨论】:
-
你不想
Timestamp >= ...吗?另外,您为什么不尝试两者并找出哪个更快? -
我做了 Timestamp equals,因为传感器每秒读取一次,所以我总是在十秒后收集全套读数,而不是在读数之间。但是,是的,还不如只做> =。谢谢。将进行测试。