2015-05-29 29 views
-1

我正在更新表中的〜8M行。我正在更新的列是client_id,表的組合索引是user_idclient_id。它會以某種方式影響索引...?用postgres中的索引更新指數

+0

當你完成更新時重建索引可能是一個好主意 – Mureinik

+0

好吧,人們會希望它會影響索引的內容,否則索引將毫無意義。你的意思是使用索引影響更新或後續查詢的性能?或者是什麼? – IMSoP

+0

我認爲索引會減慢更新過程,但要確保一旦我更新此列,然後用更改的列值,我是否需要重新創建索引以確保它更快,因爲它是更新之前..? –

回答

0

由於索引也必須更新,因此對索引執行大型更新會比較慢。這可能是一個問題,或者不是。取決於很多事情。

更新後的索引將會是他們應該的,但REINDEX可能是爲了使他們的空間使用更好。如果這8M行是表的大部分,VACUUM FULL可能是爲了減少磁盤空間使用量,但如果表總是大量更新,它可能不值得。

所以,如果你願意,你可以刪除索引,更新並重新創建索引,但是不可能說這是否比使用索引更新更快。