第05章_存储引擎
- 1. 查看存储引擎
- 2. 设置系统默认的存储引擎
- 3. 设置表的存储引擎
- 3.1 创建表时指定存储引擎
- 3.2 修改表的存储引擎
- 4. 引擎介绍
- 4.1 InnoDB 引擎:具备外键支持功能的事务存储引擎
- 4.2 MyISAM 引擎:主要的非事务处理存储引擎
- 4.3 Archive 引擎:用于数据存档
- 4.4 Blackhole 引擎:丢弃写操作,读操作会返回空内容
- 4.5 CSV 引擎:存储数据时,以逗号分隔各个数据项
- 4.6 Memory 引擎:置于内存的表
- 5. MyISAM和InnoDB
- 6. 阿里巴巴、淘宝用哪个
1. 查看存储引擎
查看mysql提供什么存储引擎:
show engines;
show engines \G;
2. 设置系统默认的存储引擎
查看默认的存储引擎:
show variables like '%storage_engine%'; #或
SELECT @@default_storage_engine;
修改默认的存储引擎
如果在创建表的语句中没有显式指定表的存储引擎的话,那就会默认使用 InnoDB 作为表的存储引擎。 如果我们想改变表的默认存储引擎的话,可以这样写启动服务器的命令行:
SET DEFAULT_STORAGE_ENGINE=MyISAM;
或者修改 my.cnf 文件:
default-storage-engine=MyISAM
# 重启服务
systemctl restart mysqld.servic
3. 设置表的存储引擎
存储引擎是负责对表中的数据进行提取和写入工作的,我们可以为 不同的表设置不同的存储引擎 ,也就是说不同的表可以有不同的物理存储结构,不同的提取和写入方式。
3.1 创建表时指定存储引擎
我们之前创建表的语句都没有指定表的存储引擎,那就会使用默认的存储引擎 InnoDB 。如果我们想显
式的指定一下表的存储引擎,那可以这么写:
CREATE TABLE 表名( 建表语句;
) ENGINE = 存储引擎名称;
3.2 修改表的存储引擎
如果表已经建好了,我们也可以使用下边这个语句来修改表的存储引擎:
ALTER TABLE 表名 ENGINE = 存储引擎名称;
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)
4. 引擎介绍
4.1 InnoDB 引擎:具备外键支持功能的事务存储引擎
4.2 MyISAM 引擎:主要的非事务处理存储引擎
4.3 Archive 引擎:用于数据存档
4.4 Blackhole 引擎:丢弃写操作,读操作会返回空内容
4.5 CSV 引擎:存储数据时,以逗号分隔各个数据项
使用案例如下
mysql> CREATE TABLE test (i INT NOT NULL, c CHAR(10) NOT NULL) ENGINE = CSV; Query OK, 0 rows affected (0.06 sec)
mysql> INSERT INTO test VALUES(1,'record one'),(2,'record two'); Query OK, 2 rows affected (0.05 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> SELECT * FROM test; +---+------------+
|i|c | +---+------------+
| 1 | record one |
| 2 | record two | +---+------------+
2 rows in set (0.00 sec)
4.6 Memory 引擎:置于内存的表
5. MyISAM和InnoDB
6. 阿里巴巴、淘宝用哪个