版权声明:最终解释权归属Hern、HernSong(hernsong)、苍鹭、www.hernsong.com所有! https://blog.csdn.net/qq_36761831/article/details/87298538
MySQL所支持的引擎
1、创建表时指定相应引擎
语法:
CREATE TABLE 表名称(
字段名称 数据类型……
) ENGINE = 引擎名称;
例如
CREATE TABLE user_content(
id INT,
str VARCHAR(50)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 ;
2、修改表引擎
将表从一个引擎修改为另一个引擎最简单的办法是使用 ALTER TABLE 语句。
注意:该方法适用于任何存储引擎,但是需要执行很长时间,因为MySQL会按行将数据从原表复制到一张新的表中,在复制期间可能会消耗系统所有的 I/O 能力,并且原表上会加上读锁。如果转换表的存储引擎,将会失去和原引擎相关的所有特性。
语法:
ALTER TABLE 表名称 ENGINE = 引擎名称;
例如
ALTER TABLE user_info ENGINE = MyISAM;
3、采用导出与导入的方法设置引擎
为了更好的控制转换的过程,可以使用mysqldump工具将数据导出到文件,然后修改文件中CREATE TABLE 语句的存储引擎选项,注意要同时修改表名称,因为同一个数据库中不能存在相同的表名,并且mysqldump默认会自动在 CREATE TABLE 语句前加上 DROP TABLE语句,要删除此语句,否则会导致数据丢失。
4、通过创建( CREATE )和查询( SELECT )的方法设置引擎
该方法不需要导出整个表的数据,而是先创建一个新的存储引擎的表( CREATE TABLE),然后利用INSERT……SELECT语法来导出数据,适合数据量不大表,若数据量很大,可以通过一些其他手段(如:创建事务、某些软件工具等)做到新表对原表的全量复制。
语法
1、创建新表
CREATE TABLE 新表名称 LIKE 旧表名称;
2、设置新表的引擎
ALTER TABLE 新表名称 ENGINE=引擎名称;
3、将旧表数据复制到新表
INSERT INTO 新表名称 SELECT * FROM 旧表名称;