我想将带有 innodb 表的 db 转换为 myisam,所有这些。我该怎么做这些?表之间存在一些外键。
我怎样才能以最好的方式做到这一点?
当外键仍然存在时,您不能直接从 InnoDB 转换为 MyISAM。您必须首先删除约束。为此,对于每个表,请执行以下步骤:
SHOW CREATE TABLE tablename
ALTER TABLE tablename DROP FOREIGN KEY x
wherex
是出现在CONSTRAINT
和之间的标识符FOREIGN KEY
。SHOW CREATE TABLE tablename
。外键约束可能留下了索引(因为 InnoDB 需要在每个外键上都有一个索引,并且它不一定会因为您删除了约束而删除它们)。对于您决定不再需要的每个索引,发出ALTER TABLE tablename DROP INDEX indexname
.对所有涉及约束的表完成此操作后,您可以使用ALTER TABLE tablename ENGINE=MYISAM
.