2011-06-03 36 views

回答

2

不,每个索引都是一个新的单独对象。检查pg_class

编辑:您不必创建两个索引来保存A和B列两次。在A,B和C上创建索引,然后在D上创建另一个索引。在需要时,PostgreSQL可以使用两个索引。

+0

如果您比其他人更频繁地使用C或D中的一种,您甚至可以在(A,B,C)和(D)上索引(反向是D是更受欢迎的)。 3列索引可用于满足(A,B)查询,然后与(D)上的索引相结合。如果(A,B,C)组合真的很常见,那么您只需要这样做,因为3列索引将大于2列索引。 – 2011-06-04 14:38:51

0

这是弗兰克指出的每次都有的新索引。

另外需要注意的是,除非您经常按照A和B以及限制条款的相关where约束条件,经常订购单列索引。如果没有,Postgres的规划人员将会聪明地使用bitmap index,正如multi-column indexes的文档说明中所述。