关于多列索引的PostgreSQL CLUSTER

时间:2010-07-06 03:43:49

标签: postgresql performance

假设我在(a,b,c)上有索引,并对该索引执行CLUSTER。数据的确切存储方式如何?我会假设它是这样的(只是猜测):首先按a,然后按b,然后按c。例如:

(a, b, c)
---------
(1, 1, 1)
(1, 1, 2)
(1, 2, 5)
(2, 1, 4)
(3, 1, 1)

这意味着,如果我想首先按b排序,我可以删除索引,将其重新创建为(b,a,c),然后是CLUSTER?

1 个答案:

答案 0 :(得分:2)

是的,CLUSTER按索引的顺序重新创建表。

要获取(b,a,c),您还可以创建一个新索引,然后在该新索引上进行聚类,然后删除索引。