JSONB GIN索引上的Postgres CLUSTER?

时间:2018-08-22 22:17:33

标签: postgresql indexing jsonb clustered-index

我正在尝试将Postgres与一个JSONB列对比一个更传统的关系模型(每个字段都是一列)进行评估。我最近发现,对关系模型中的索引(在本例中为一列的索引)进行聚类有助于提高性能,这是可以理解的。

据我了解,运行CLUSTER ON实际上会基于指定的索引重新排序表的物理存储方式。我希望知道的是,如果我运行CLUSTER ON,那么将如何对表重新排序?在实际执行命令之前,是否有任何方法可以知道?还是更多的“尝试一下”方案?

如果有帮助,我们正在使用jsonb_path_ops运算符。

谢谢!

1 个答案:

答案 0 :(得分:0)

我怀疑您是否可以基于GIN索引进行聚类,因为索引中没有自然顺序。物理上按索引顺序排序,而gin索引本身没有排序。

因此,如果此方法奏效,我将感到非常惊讶。我认为您将需要一个btree索引。

现在,我认为您可以对jsonb的属性进行功能索引并在其上进行集群。