首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在用现有索引还原数据库时,是否需要重新生成索引?

问在用现有索引还原数据库时,是否需要重新生成索引?
EN

Stack Overflow用户
提问于 2019-02-28 22:18:19
回答 2查看 624关注 0票数 1

我在一个很大的桌子上删除了一些索引,并意识到我需要它们。不需要很长时间并发地将它们添加回去,我想知道是否可以使用删除索引之前获取的数据库副本进行恢复?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-03-01 02:56:13

如果您所说的“数据库副本”是指文件级别的 Postgres DB目录的副本(因为Postgres没有运行以获得一致的状态),那么yes,这样的快照也包含所有内容和索引。您可以将其复制回文件级别,然后启动Postgres --当然,返回到以前的状态。

如果OTOH是指使用标准Postgres工具pg_dump或pg_dumpall进行备份,则no物理上不包括索引。只是建造它们的指令。包含大量功能依赖价值的垃圾是没有意义的。从恢复的数据构建它们的速度可能同样快。

无论哪种方式,在对表进行更改之后,您都无法将索引从旧的快照添加回活动数据库。这在逻辑上是不可能的。那么,除了以这样或那样的方式重建索引之外,别无选择。

票数 2
EN

Stack Overflow用户

发布于 2019-02-28 22:32:26

我会为MySQL负责。你用mysql和postgresql标记了你的问题,所以我不知道你真正使用的是哪一个。

如果您的备份是使用Percona XtraBackup或MySQL Enterprise之类的备份解决方案进行的物理备份,那么它将包括索引,因此恢复它会更快。

如果您的备份是用mysqldump或mydumper进行的逻辑备份,那么备份只包括数据。无论如何,恢复它都必须重建索引。这不会节省任何时间。

如果您只通过从数据目录复制文件而犯了“备份”的错误,那么这些备份有点像物理备份,但是除非您在关闭MySQL服务器时复制这些文件,否则备份可能是不可行的。

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

https://stackoverflow.com/questions/54935159

复制
相关文章

相似问题

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