page contents

如何批量更改MySQL引擎?

轩辕小不懂 发布于 2022-03-18 14:52
阅读 390
收藏 0
分类:数据库
3323
Nen
Nen
- 程序员

有如下5种办法可以修改表的存储引擎:

1.MySQL命令语句修改:alter table

attachments-2022-03-6QeIVsNo62342df6324cb.png

优点:简单,而且适合所有的引擎。缺点:1)这种转化方式需要大量的时间和I/O,由于MySQL要执行从旧表到新表的一行一行的复制,所以效率比较低。

2)在转化期间源表加了读锁。

3)从一种引擎到另一种引擎做表转化,所有属于原始引擎的专用特性都会丢失,例如从InnoDB到MyISAM,则InnoDB的索引会丢失。2.使用dump(转储),然后import(导入)优点:使用mysqldump这个工具将修改的数据导出后会以.sql的文件形式保存,可以对这个文件进行操作,所以有更多的控制,例如修改表名,修改存储引擎等。3.CREATE SELECT以上方式中,第一种方式简便,第二种方式安全,第三种方式是前两种方式的折中,过程如下所示:1)CREATE TABLE NEWTABLE LIKE OLDTABLE。2)ALTER TABLE NEWTABLE ENGINE=innodb/myisam/memory。3)INSERT INTO NEWTABLE SELECT*FROM OLDTABLE。如果数据量不大的话,那么第3种方式还是挺好的。

4.使用sed对备份内容进行引擎转换

attachments-2022-03-v3Pxk2kY62342e2e8da00.png

5.mysql_convert_table_format命令修改

attachments-2022-03-Qqeg5BkK62342e45a625d.png

请先 登录 后评论