【发布时间】:2016-09-20 12:52:04
【问题描述】:
我有一个包含测量数据的表,其中包含数据、connected_id(传感器)和时间戳。我正在此表中搜索特定传感器的第一个时间戳。对于某些传感器,我会在 2 毫秒内得到结果,而其他传感器则需要几秒钟才能完成。此外,当我删除搜索特定传感器的 where 条件时,结果在 ms 内。
两个查询使用相同的计划,使用 postgresql 8.4 在同一台服务器上执行。我已经对数据库进行了真空分析,并在 postgresql.conf 文件中使用了查询计划。
我已经在 created、connected_id 和这两个列上尝试了 btree 和 hash 索引。这没有任何区别。
【问题讨论】:
-
不要截取文本,而是将其作为文本粘贴到此处。
-
索引
data_index是如何定义的? -
这也取决于数据量。两组条件的
count(*)返回值是多少? -
@donkopotamus data_index 被定义为 btree(created)
-
@Rahul 说明中显示了记录数。 connected_id 26 有 3M 个结果,connected_id 19 有 5M 个结果。总表包含大约 5000 万条结果
标签: postgresql