myisam 表 转换为 innodb 表

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

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

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

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

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

保存后重启mysqld服务:

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


mysql> ALTER TABLE  boblog_history   ENGINE=InnoDB;
Query OK, 2808 rows affected (0.76 sec)
Records: 2808  Duplicates: 0  Warnings: 0

ALTER TABLE  boblog_blogs     ENGINE=InnoDB;
ALTER TABLE  boblog_calendar  ENGINE=InnoDB;
ALTER TABLE  boblog_categoriesENGINE=InnoDB;
ALTER TABLE  boblog_counter   ENGINE=InnoDB;
ALTER TABLE  boblog_forbidden ENGINE=InnoDB;
ALTER TABLE  boblog_history   ENGINE=InnoDB;
ALTER TABLE  boblog_linkgroup ENGINE=InnoDB;
ALTER TABLE  boblog_links     ENGINE=InnoDB;
ALTER TABLE  boblog_maxrec    ENGINE=InnoDB;
ALTER TABLE  boblog_messages  ENGINE=InnoDB;
ALTER TABLE  boblog_mods      ENGINE=InnoDB;
ALTER TABLE  boblog_pages     ENGINE=InnoDB;
ALTER TABLE  boblog_plugins   ENGINE=InnoDB;
ALTER TABLE  boblog_replies   ENGINE=InnoDB;
ALTER TABLE  boblog_tags      ENGINE=InnoDB;
ALTER TABLE  boblog_upload    ENGINE=InnoDB;
ALTER TABLE  boblog_user      ENGINE=InnoDB;

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

你可能感兴趣的:(mysql,数据库)