首页 > 解决方案 > JSONB GIN索引上的Postgres CLUSTER?

问题描述

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

据我了解,运行 CLUSTER ON 实际上会根据指定的索引对表的物理存储方式进行重新排序。我希望知道的是,如果我运行 CLUSTER ON ,该表将如何重新排序?在我实际执行命令之前有什么方法可以知道,还是这更像是一个试一试的场景?

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

谢谢!

标签: postgresqlindexingjsonbclustered-index

解决方案


我怀疑您可以在 GIN 索引上进行聚类,因为索引中没有自然排序。对索引的顺序进行集群物理重新排序,而 gin 索引本身并没有排序。

因此,如果这有效,我会感到非常惊讶。我认为您需要一个 btree 索引。

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


推荐阅读