我想将引擎类型从MyISAM更改为InnoDB。我所做的:方法1:



在这里,我可以看到一个表的总行和表的大小。但在浏览时没有看到任何记录。
方法2:


在这里,我注意到在更改引擎类型之后,会删除许多记录。在客户表中导入的记录是310749后更改引擎类型,我只看到243898条,损失共计66851条记录。
这是怎么回事?将类型从MyISAM更改为InnoDB的任何其他方法,而不会丢失数据。
发布于 2019-06-24 16:19:42
只需做ALTER TABLE foo ENGINE=InnoDB;,但这样做是“就地”。如果要将新表放在不同的数据库中:
CREATE TABLE db2.foo LIKE db1.foo;
ALTER TABLE db2.foo ENGINE=InnoDB; -- and possibly other changes, see blog below
INSERT INTO db2.foo
SELECT * FROM db1.foo; -- copy data over
SELECT COUNT(*) FROM db1.foo;
SELECT COUNT(*) FROM db2.foo; -- compare exact number of rows行数--如果使用SHOW TABLE STATUS查看,请注意,MyISAM提供了确切的行数,但InnoDB仅近似于该数目。使用SELECT COUNT(*) FROM foo获取确切的行数。
在这里,让我把我从MyISAM到InnoDB:http://mysql.rjweb.org/doc.php/myisam2innodb的旧博客上的蜘蛛网去掉。
https://stackoverflow.com/questions/56735083
复制相似问题