我删除了一个非常大的表上的一些索引,并意识到我需要它们。我想知道我是否可以使用在删除索引之前获取的数据库副本来恢复,而不是同时添加它们,这将花费很长时间?
最佳答案
如果“数据库副本”是指文件级别的 Postgres DB 目录副本(Postgres 未运行以获得一致状态),则是,这样的快照包括一切,索引也是如此。您可以将其复制回文件级别,然后启动 Postgres - 当然可以回退到之前的状态。
如果,OTOH,你的意思是使用标准 Postgres 工具 pg_dump
或 pg_dumpall
进行备份,那么不,物理上不包括索引。只是构建它们的说明。包含大量功能相关值的垃圾是没有意义的。从恢复的数据构建它们可能同样快。
无论哪种方式,在对表进行更改后,您都无法将旧快照中的索引添加回实时数据库。这在逻辑上是不可能的。那么除了以一种或另一种方式重建索引之外别无选择。
关于database - 使用现有索引恢复数据库时是否需要重建索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54935159/