2

我有哪些选项可以使用 InnoDB 引擎导入 MySQL 表,其中表已经存在,而不会失去对现有表的读取访问权限?通常我指的ALTER TABLE是非常慢的情况,我想转储表,修改转储,然后导入它。

如果我mysqldump用来进行转储,那么当我重新插入它时,它会在插入之前丢弃表,因此在导入完成之前读取访问当然会丢失。

我可以简单地更改转储中的表名,导入它,然后在完成后删除旧表并重命名新表吗?有没有更好的办法?提前致谢。

4

2 回答 2

2

如果您的表具有相同的结构,我看不出有任何问题。您只需跳过“DROP TABLE”运算符。几乎所有的转储程序都可以选择不在转储中包含 DROP TABLE/CREATE TABLE。我个人推荐Sypex Dumper

如果要更改表结构而不锁定表,我认为最好的方法是使用 pt-online-schema-change - ALTER 表而不锁定它们

于 2012-04-13T11:03:53.920 回答
1

为此http://www.mysql.com/products/enterprise/backup.html使用 MySQL Enterprise 备份

于 2012-04-13T11:14:14.860 回答