【发布时间】:2015-12-30 04:59:42
【问题描述】:
我的数据库中有一个包含以下字段的表。
日期/时间、设备 ID、传感器 1 值、传感器 2 值。
这是物联网项目的一部分,其中电子传感器每秒将数据发送到数据库以进行数据分析
我们最初将设备 ID 设置为预测客户端将仅使用来自某些传感器的数据的索引。
但是,我们发现我们的客户主要要求提供基于日期的数据(例如 2013 年全年的数据)。
由于 e 记录的大小,仅对 1 年的数据(估计有 1000 万个条目)运行 Select * 过滤的日期时间查询需要几天时间。
我的问题是,索引日期/时间以加快查询速度是否有意义,因为日期时间字段在插入期间已排序?
如果是这样,有什么建议可以加快这样的查询速度吗?
谢谢。
【问题讨论】:
-
表是否有聚集的主键或索引?这就是您的数据“排序”的依据。默认情况下没有排序顺序,因此即使您按时间顺序插入记录,也没有默认排序顺序,除非您有聚集键或索引。
-
我的建议是:给数据源添加分页,那么你只需要一个数据分区而不是获取全年的数据,另外,添加索引会占用更多的内存,因为大量数据。
-
@Jeremy 我们没有主键或索引。因为我们的数据集中没有唯一的字段。是的,你是对的,我们是按时间顺序插入的。
-
@sean 查看这篇文章stackoverflow.com/questions/20050341/… 如果您要按列排序或选择,应该有一个索引