如何使用其他表中的列/字段来集群PostgreSQL表

时间:2014-06-06 15:35:31

标签: postgresql clustered-index

我想基于其他表中的信息来集群PostgreSQL表。

想象一下两个表 - foos (id, baz_id, name)bars (foo_id, name)bars.foo_idfoos.id的外键引用。

我想对吧台进行聚类,以便foos.baz_id对它进行排序。

这可能吗?

1 个答案:

答案 0 :(得分:1)

这可以使用非规范化来完成。

添加bars.baz_id列并添加触发器或应用程序层逻辑,以维护该表中的相应值。

然后添加一个索引,该索引使用非规范化bars.baz_id列和该索引的簇。

CREATE INDEX index_bars_on_baz_id ON bars (baz_id);
CLUSTER bars USING index_bars_on_baz_id;