黄东旭解析 TiDB 的核心优势
518
2023-11-24
MySQL数据库引擎的转换
MySQL 5.1 之前的版本,MyISAM是默认的存储引擎,后来的版本都改成了InnoDB引擎,有时候需要根据业务的特点在这两个引擎之间进行转换。
1、查看当前MySQL数据库的默认引擎
mysql> show engines;
2、能看出当前默认的存储引擎是InnoDB,还有MyISAM引擎也是经常会用的一种存储引擎。
3、要转换已经有数据的表的存储引擎,主要有三种方法:
一种是直接用alter命令转换
一种是mysqldump导出,修改存储引擎后,再导入
一种是创建一个新表,再用insert...select导入数据
4、直接用alter命令转换
先查询表的存储引擎
mysql> show create table test;
5、可以看出,test这个表的存储引擎为InnoDB,现在我们把test这个表强制转换成MyISAM引擎
mysql> alter table test engine=myisam;
6、如果数据量较大,这种方法会需要花比较长的时间,而且在转换的过程中,原表会加上读锁。
7、mysqldump导出,修改存储引擎后,再导入
先用mysqldump命令导出,再修改导出文件里面的存储引擎信息,然后再导入。在导入前,需要对原表进行删除或者改名才行。
# mysqldump -uroot -p --databases haibing --tables test > test_table.sql
8、编辑导出的文件,修改里面的存储引擎
# vim test_table.sql
9、把其中的“ENGINE=MyISAM”改成“ENGINE=InnoDB”
10、导入前,我们先修改原先的表名,因为一个数据库中不能有重名的表。
mysql> alter table test rename to old_test;
修改完原先的表名,导入前面修改的文件
mysql > source test_table.sql
11、创建一个新表,再用insert...select导入数据
创建一个跟原先表结构一样的新表,然后在没有数据的情况下修改存储引擎,再用insert...select从旧表中导入新表中
创建一个跟旧表test结构一样的新表new_test
mysql> create table new_test like test;
修改新表的存储引擎
mysql > alter table new_test engine=myisam;
把旧表test中的数据导入到新表new_test中
mysql> insert into new_test select * from test;
如果确认没问题的话,可以删除旧表,再把新表改名。
怎样在mysql数据库查看所有存储引擎
1、怎样在mysql数据库查看所有存储引擎,如图:
使用命令:show engines;
2、或者查看可用的存储引擎:
使用命令:show variables like 'storage_engine';
如图:
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。