postgresql rebuild index和recreate index有什么区别,哪一个更好?

问题描述 投票:3回答:1

我有一个索引大小太大的表(约2G)。当我将数据库恢复到VM时,大小只有200M,所以我需要重建/重新创建索引,我可能会在线完成。

重建(reindex)和重新创建索引之间的区别是什么,当我在线进行时哪个更好?特别是,哪个选项允许在操作期间查询DB?

postgresql postgresql-9.3
1个回答
2
投票

REINDEX命令requires an exclusive table lock,这意味着它将停止对表的任何访问,直到命令完成。如果您能负担得起这种维护窗口,那就完全没问题了。

在线重建的替代方法是使用CREATE INDEX CONCURRENTLY创建一个新索引,然后删除旧索引。这将花费更长的时间来完成,但允许在重建索引时访问表。

© www.soinside.com 2019 - 2024. All rights reserved.