2011-06-03 48 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的文檔說明中所述。