2015-05-29 32 views
-1

我正在更新表中的〜8M行。我正在更新的列是client_id,表的组合索引是user_idclient_id。它会以某种方式影响索引...?用postgres中的索引更新指数

+0

当你完成更新时重建索引可能是一个好主意 – Mureinik

+0

好吧,人们会希望它会影响索引的内容,否则索引将毫无意义。你的意思是使用索引影响更新或后续查询的性能?或者是什么? – IMSoP

+0

我认为索引会减慢更新过程,但要确保一旦我更新此列,然后用更改的列值,我是否需要重新创建索引以确保它更快,因为它是更新之前..? –

回答

0

由于索引也必须更新,因此对索引执行大型更新会比较慢。这可能是一个问题,或者不是。取决于很多事情。

更新后的索引将会是他们应该的,但REINDEX可能是为了使他们的空间使用更好。如果这8M行是表的大部分,VACUUM FULL可能是为了减少磁盘空间使用量,但如果表总是大量更新,它可能不值得。

所以,如果你愿意,你可以删除索引,更新并重新创建索引,但是不可能说这是否比使用索引更新更快。