如何索引复合类型的列?

时间:2016-06-21 18:34:11

标签: postgresql indexing

给定具有5个或更多属性的多维复合类型,每个属性都是数字。我需要创建一个索引,允许我通过这些属性的任何子集进行查询。

具有三维位置顶点X, Y, Z(3而不是5个属性)的示例,我想看看例如:

  • 所有项目彼此重叠(X=1 and Y=2 --Z doesn't matter
  • 一个高度(Z=3 --X and Y don't matter
  • 的所有项目
  • 多维数据集中的所有项目(X between 10 and 20 and Y between 5 and 15 and Z between 1 and 5)
  • ...

我知道postgres支持R-Trees但是对于2-D特殊数据更有建议(仅支持?)。 AFAIK B-Trees不会真正支持那种查询,除非我为每个组合创建一个B树,或者如果我为((column).X)创建一个和((column).Y)的另一个,postgres可以组合索引吗?

表的大小将是短期的,几百万行,长期可能更大。

更新

在与同事交谈之后,我现在意识到,我所要求的更多的是具有多维立方体的数据仓库解决方案,您希望在“切片”中“切割”数据以从不同侧面查看数据,但也许有答案。

0 个答案:

没有答案