PostgreSQL允許「部分索引」,其基本上與條件謂詞索引的創建。 http://www.postgresql.org/docs/8.2/static/indexes-partial.html使用「部分索引」的優點和缺點是什麼?
在測試時,我發現它們在查詢只訪問具有120k行的表中的特定12行的情況下表現非常好。
但我們部署在此之前,還有我們應該意識到的任何缺點或警告?
PostgreSQL允許「部分索引」,其基本上與條件謂詞索引的創建。 http://www.postgresql.org/docs/8.2/static/indexes-partial.html使用「部分索引」的優點和缺點是什麼?
在測試時,我發現它們在查詢只訪問具有120k行的表中的特定12行的情況下表現非常好。
但我們部署在此之前,還有我們應該意識到的任何缺點或警告?
臨:
這降低了指數, 這將加快查詢那些 使用索引的大小。這也將加快 許多表更新操作,因爲 索引並不需要在所有情況下
進行更新
缺點:
因爲這不再是一個真正的指數,如果你這樣做完全加入或者對索引未涉及的值進行過濾時,性能會隨着表大小的增長而降低。
主要需要注意的是不要不恰當地使用它們。它們對於識別符合一組標準的行很有用,其中這些行在大表中是少數。
以一個表Orders
例如用order_status
列和數據的分配在順序狀態如下:
如果您經常查詢where order_status = 'New'
獲得的新訂單列表,然後大部分只是直接引用ID訂單剩下的時間裏,然後部分指標將是有益的。在120k中12行的例子中,這更加真實。
+1。有時在生產環境中,索引會作爲性能調整的一部分添加。局部索引允許DBA調諧爲特定角的情況下,如(ORDER_STATUS =「新」)不同時充分命中正常索引。 – 2010-05-24 15:50:17