我有哪些选项可以使用 InnoDB 引擎导入 MySQL 表,其中表已经存在,而不会失去对现有表的读取访问权限?通常我指的ALTER TABLE
是非常慢的情况,我想转储表,修改转储,然后导入它。
如果我mysqldump
用来进行转储,那么当我重新插入它时,它会在插入之前丢弃表,因此在导入完成之前读取访问当然会丢失。
我可以简单地更改转储中的表名,导入它,然后在完成后删除旧表并重命名新表吗?有没有更好的办法?提前致谢。
如果您的表具有相同的结构,我看不出有任何问题。您只需跳过“DROP TABLE”运算符。几乎所有的转储程序都可以选择不在转储中包含 DROP TABLE/CREATE TABLE。我个人推荐Sypex Dumper。
如果要更改表结构而不锁定表,我认为最好的方法是使用 pt-online-schema-change - ALTER 表而不锁定它们