MySQL设置表引擎的方法

版权声明:最终解释权归属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 旧表名称;

猜你喜欢

转载自blog.csdn.net/qq_36761831/article/details/87298538