day01
查看当前服务器程序支持的存储引擎
我们可以用下边这个命令来查看当前服务器程序支持的存储引擎:
show engines;
Support
列表示该存储引擎是否可用DEFAULT
值代表是当前服务器程序的默认存储引擎Comment
列是对存储引擎的一个描述Transactions
列代表该存储引擎是否支持事务处理XA
列代表着该存储引擎是否支持分布式事务Savepoints
代表着该存储引擎是否支持部分事务回滚
设置表的存储引擎
我们前边说过,存储引擎是负责对表中的数据进行提取
和写入
工作的,我们可以为不同的表设置不同的存储引擎
,也就是说不同的表可以有不同的物理存储结构
,不同的提取和写入方式
。
创建表时指定存储引擎
我们之前创建表的语句都没有指定表的存储引擎,那就会使用默认的存储引擎InnoDB
(当然这个默认的存储引擎也是可以修改的,我们在后边的章节中再说怎么改)。如果我们想显式的指定一下表的存储引擎,那可以这么写:
CREATE TABLE 表名(
建表语句;
) ENGINE = 存储引擎名称;
比如我们想创建一个存储引擎为
MyISAM
的表可以这么写:
mysql> CREATE TABLE engine_demo_table(
-> i int
-> ) ENGINE = MyISAM;
Query OK, 0 rows affected (0.02 sec)
修改表的存储引擎
- 如果表已经建好了,我们也可以使用下边这个语句来修改表的存储引擎:
ALTER TABLE 表名 ENGINE = 存储引擎名称;
- 比如我们修改一下
engine_demo_table
表的存储引擎:
mysql> ALTER TABLE engine_demo_table ENGINE = InnoDB;
Query OK, 0 rows affected (0.05 sec)
Records: 0 Duplicates: 0 Warnings: 0
- 这时我们再查看一下
engine_demo_table
的表结构:
mysql> SHOW CREATE TABLE engine_demo_table\G
*************************** 1. row ***************************
Table: engine_demo_table
Create Table: CREATE TABLE `engine_demo_table` (
`i` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1 row in set (0.01 sec)
- 可以看到该表的存储引擎已经改为
InnoDB
了。