MySQL数据引擎InnoDB和MyISAM互相转换

MySQL(或者社区开源fork的MariaDB)5.5以上支持InnoDB引擎,并将其作为默认数据库引擎。InnoDB带来很多改进,但是对系统资源占用明显增加,对于还在128MB~512MB内存VPS挂WordPress博客的筒子们来说,InnoDB是不合适的,还是得换回MyISAM这匹老马!

本文讲解从InnoDB引擎转换成MyISAM引擎,看完本文,你应该懂得如何操作以把MyISAM引擎转换成InnoDB引擎了(请确保InnoDB开启,MySQL命令行下SHOW ENGINES命令查看)。

进入MySQL命令行模式,然后执行以下指令(以数据库wordpress为例):

USE wordpress;
SHOW TABLES;
ALTER TABLE wp_commentmeta ENGINE=MYISAM;
ALTER TABLE wp_comments ENGINE=MYISAM;

SHOW TABLES可以显示出wordpress下全部表的名字,接下来两行将把wp_commentmeta和wp_comments这两个表转换成MyISAM引擎,剩下的几个表也请用同样的方式转换完毕。引擎转换过程中将把数据库锁定,小的数据库转换很快,但是大数据库转换可能花费时间比较长,因此尽量选择访问低峰时间段进行。

转换完毕后,可以把InnoDB引擎关闭并将MyISAM设为今后MySQL的默认引擎,编辑/etc/my.cnf文件,在[mysqld]区段下加入下面两行:

default-storage-engine=MYISAM
innodb=OFF

保存后重启mysqld服务:

sudo service mysqld restart

来源:https://www.librehat.com/mysql-engine-innodb-and-myisam-convert