select concat('alter table ',tt.TABLE_SCHEMA,'.',tt.TABLE_NAME,' ENGINE=MyISAM;') From information_schema.`TABLES` tt where tt.`ENGINE`='InnoDB' AND tt.TABLE_SCHEMA='dbname';
以上语句会生成批量转换数据库表类型的脚本语句(将‘dbname'数据库下所有innodb的表转换成myisam),然后copy出来,执行。
这个转换过程对于大数据量的表来说,速度会很慢。
还有注意的是,在mysql5.5以后,修改表类型是用 ENGINE=MyISAM.,在5.5以前,应该是TYPE=MyISAM
本文提供了一种批量转换MySQL数据库中表的存储引擎的方法,特别适用于将InnoDB表转换为MyISAM表的情形。文中给出的SQL语句可以生成所需的转换脚本,需要注意的是,在MySQL 5.5及更高版本中,使用`ENGINE=MyISAM`进行转换。
4034

被折叠的 条评论
为什么被折叠?



