索引排序数据集中的有用性

时间:2015-10-02 01:58:34

标签: sql indexing

我的数据库中有一个包含以下字段的表。

日期/时间,设备ID,传感器1值,传感器2值。

这是IOT项目的一部分,其中e传感器将每秒向数据库发送数据用于数据分析

我们最初将设备ID设置为索引预见客户端将仅使用来自某些传感器的数据。

但是,我们发现客户主要根据日期请求数据(例如2013年整个数据)。

由于电子记录的大小,只需要几天就可以运行Select *过滤日期时间查询1年的数据(估计的1000万条目)。

我的问题是,在插入过程中排序日期时间字段后,将日期/时间编入索引以加快查询是否有意义?

如果有,是否有任何加速此类查询的建议?

谢谢。

2 个答案:

答案 0 :(得分:2)

嗯,这有点道理。 """"是因为你拿了一大堆价值 - 整整一年。索引应该帮助,因为数据都在相邻的数据页上,应该加载到缓存中。但是,仍然存在大量行,因此索引会增加开销(以及跳过读取一堆行)。

或许更好的方法是按日期划分。然后,您可以构造查询,因此一年(或月或日)数据只需要一个分区。根据你的说法,我会调查分区;细节取决于您的数据库。

答案 1 :(得分:1)

您使用了"主要是"这表明您的客户也可能不时进行其他类型的查询。

所以我的建议是在Device ID上有一个复合聚簇索引,然后在DateTime上获得更灵活的查询,并使用Google Big Query(或类似的东西)进行整体分析。例如整个2013年的数据