1.7 【MySQL】常用存储引擎

MySQL 支持非常多种存储引擎,我这先列举一些:

存储引擎

描述

ARCHIVE

用于数据存档(行被插入后不能再修改)

BLACKHOLE

丢弃写操作,读操作会返回空内容

CSV

在存储数据时,以逗号分隔各个数据项

FEDERATED

用来访问远程表

InnoDB

具备外键支持功能的事务存储引擎

MEMORY

置于内存的表

MERGE

用来管理多个MyISAM表构成的表集合

MyISAM

主要的非事务处理存储引擎

NDB

MySQL集群专用存储引擎

1.8 关于存储引擎的一些操作

1.8.1 查看当前服务器程序支持的存储引擎

我们可以用下边这个命令来查看当前服务器程序支持的存储引擎:

show engines;

其中的 Support 列表示该存储引擎是否可用, DEFAULT 值代表是当前服务器程序的默认存储引擎。 Comment 列是对存储引擎的一个描述。Transactions 列代表该存储引擎是否支持事务处理。 XA 列代表着该存储引擎是否支持分布式事务。 Savepoints 代表着该列是否支持部分事务回滚。

1.8.2 设置表的存储引擎

存储引擎是负责对表中的数据进行提取和写入工作的,我们可以为不同的表设置不同的存储引擎,也就是说不同的表可以有不同的物理存储结构,不同的提取和写入方式。

1.8.2.1 创建表时指定存储引擎

我们之前创建表的语句都没有指定表的存储引擎,那就会使用默认的存储引擎 InnoDB。如果我们想显式的指定一下表的存储引擎,那可以这么写:

CREATE TABLE 表名(
 建表语句;
 ) ENGINE = 存储引擎名称;

我们想创建一个存储引擎为 MyISAM 的表可以这么写:

mysql> CREATE TABLE engine_demo_table(
 -> i int 
 -> ) ENGINE = MyISAM;

1.8.2.2 修改表的存储引擎

如果表已经建好了,我们也可以使用下边这个语句来修改表的存储引擎:

ALTER TABLE 表名 ENGINE = 存储引擎名称;

修改 engine_demo_table 表的存储引擎:

mysql> ALTER TABLE engine_demo_table ENGINE = InnoDB;

这时我们再查看一下 engine_demo_table 的表结构:

1.7 【MySQL】常用存储引擎_第1张图片

存储引擎就改成InnoDB了。

 

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