给定具有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可以组合索引吗?
表的大小将是短期的,几百万行,长期可能更大。
更新
在与同事交谈之后,我现在意识到,我所要求的更多的是具有多维立方体的数据仓库解决方案,您希望在“切片”中“切割”数据以从不同侧面查看数据,但也许有答案。