首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >postgresql重建索引和重建索引有什么区别,哪个更好?

postgresql重建索引和重建索引有什么区别,哪个更好?
EN

Stack Overflow用户
提问于 2018-09-14 11:41:58
回答 2查看 10.1K关注 0票数 8

我有一个索引大小太大(大约2G)的表。当我将数据库恢复到虚拟机时,大小只有200M,因此我需要重建/重新创建索引,我可能会在线执行此操作。

重建(reindex)和重建索引有什么不同,当我在线做时,哪一个更好?具体来说,哪个选项允许在操作过程中查询数据库?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-14 11:47:37

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

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

票数 8
EN

Stack Overflow用户

发布于 2020-04-01 08:17:30

Postgres12添加了一个REINDEX INDEX CONCURRENTLY命令,它可以在这里执行您想要的操作。https://paquier.xyz/postgresql-2/postgres-12-reindex-concurrently/ https://www.depesz.com/2019/03/29/waiting-for-postgresql-12-reindex-concurrently/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52324665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档