存储引擎
存储引擎介绍
介绍
存储引擎就是存储数据、建立索引、更新/查询数据等技术的实现方式 。
存储引擎是基于表的,而不是基于库的,所以存储引擎也可被称为表类型。
我们可以在创建表的时候,来指定选择的存储引擎,如果没有指定将自动选择默认的存储引擎。
建表时候指定存储引擎
bash
CREATE TABLE 表名(
字段1 字段1类型 [ COMMENT 字段1注释 ] ,
......
字段n 字段n类型 [COMMENT 字段n注释 ]
) `ENGINE` = INNODB [ COMMENT 表注释 ] ;
查询当前数据库支持的存储引擎
bash
show engines;
查询建表语句 -- 默认存储引擎 InnoDB
bash
show create table 表名 ;
- 创建表 my_myisam, 并指定 MyISAM 存储引擎
bash
create table my_myisam(
id int,
name varchar(10)
) engine = MyISAM ;
- 创建表 my_memory , 指定 Memory 存储引擎
bash
create table my_memory(
id int,
name varchar(10)
) engine = Memory ;
存储引擎区别
注意
InnoDB 引擎与 MyISAM 引擎的区别
- InnoDB: 支持事务, 支持外键, 支持行级锁, 适合高并发操作
- MyISAM: 不支持事务, 不支持外键, 支持表级锁, 效率高, 适合操作密集型应用
存储引擎的选择
在选择存储引擎时,应该根据应用系统的特点选择合适的存储引擎。对于复杂的应用系统,还可以根据 实际情况选择多种存储引擎进行组合。
InnoDB: 是 Mysql 的默认存储引擎,支持事务、外键。如果应用对事务的完整性有比较高的要 求,在并发条件下要求数据的一致性,数据操作除了插入和查询之外,还包含很多的更新、删除操 作,那么 InnoDB 存储引擎是比较合适的选择。
MyISAM : 如果应用是以读操作和插入操作为主,只有很少的更新和删除操作,并且对事务的完 整性、并发性要求不是很高,那么选择这个存储引擎是非常合适的。
MEMORY:将所有数据保存在内存中,访问速度快,通常用于临时表及缓存。MEMORY 的缺陷就是 对表的大小有限制,太大的表无法缓存在内存中,而且无法保障数据的安全性。