mysql - 将数据从 myisam 复制到 innodb

标签 mysql database innodb myisam

我目前有一个基于 MYISAM 存储引擎的数据库,其中有几千条记录。我想将我的数据库转换为 InnoDb 存储引擎。

这不会是一个简单的 ALTER 存储引擎命令,因为在将其转换为 InnoDb 之前,我需要将外键添加到当前数据库架构(尽管当前的 MyISAM 数据库架构确实有主键)。

我的问题是,一旦我将数据库转换为 InnoDb,将数据从当前 MYISAM 引擎恢复到 InnoDb 引擎将就像触发 PhpMyAdmin 实例并备份数据(减去数据库架构或结构)一样简单,然后恢复到Innodb引擎?

这样做的潜在障碍是什么?

这是解决此问题的正确方法吗?或者还有哪些其他更简单或更好的数据恢复方法?

最佳答案

It won't be a simple ALTER storage engine command, since i need to add foreign keys to to the current database schema

为什么不呢?确保先备份数据,这总是一个好主意,但是您不需要转储和恢复数据,您可以发出简单的 ALTER TABLE,例如:

ALTER TABLE `tablename` ENGINE = InnoDB;

之后您可以添加任何索引和外键。如果任何新的外键失败,您必须修复数据并重试。

关于mysql - 将数据从 myisam 复制到 innodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8181659/

相关文章:

Mysql - 选择 table1.something, table2.* WHERE 替换所有列,如 %something%

php - 如何使用 laravel 加速 Mysql 查询

mysql - 如何导入一个10GB的文件到MySQL?

mysql - SHOW ENGINE INNODB STATUS 缺少死锁部分

mysql - 如何提高 mysql 中大量插入的性能?

php - 在页面之间导航时将数据动态附加到 URL 查询字符串

mysql - 如何在 json 响应中自定义一个键?

java - 找不到基本名称 org.apache.commons.dbcp2.LocalStrings 的包

java - 数据库android从表中选择

mysql - wampp 上接受 innodb 的配置不起作用