一.存储引擎
1.存储引擎是存储数据、建立索引、更新/查询数据等技术的实现方式。是基于表的,不是基于库的。也可被称为表类型。
二.类型
三.特点
1.InnoDB
a.InnoDB特点
1.是一种兼顾高可靠性和高性能的通用存储引擎,在mysql5.5之后,InnoDB是默认的mysql存储引擎。
2.DML操作遵循ACID模型,支持事务。
3.行级锁,提高并发访问性能。
4.支持外键foreign key约束,保证数据的完整性和正确性。
5.存储文件格式为xxx.ibd,xxx是表名,innoDB引擎的每张表都对应一个表空间文件,存储该表的表结构(frm、sdi)、数据和索引。参数:innodb_file_per_table
b.逻辑存储结构
2.MyISAM
a.MyISAM特点
1.MyISAM是mysql早期的默认存储引擎。
2.不支持事务,不支持外键。
3.支持表锁,不支持行锁。
4.访问速度快。
5.xxx.sdi:存储表结构信息。
6.xxx.MYD:存储数据
7.xxx.MYI:存储索引
3.Memory
a.memory特点
1.内存存放:表数据存储在内存中,受硬件、断电问题影响,只能作为临时表或缓存使用。
2.hash索引(默认).
3.xxx.sdi:存储表结构信息
四.对比
五.存储引擎选择
1.InnoDB
1.对事务的完整性有较高的要求
2.并发条件下要求数据一致性
3.更新、删除操作频繁
2.MyISAM
1.以读操作、插入操作为主
2.对事务的完整性要求不高
3.对并发性要求不高
3.MEMORY
1.临时表
2.缓存
3.对表大小有限制
4.无法保障数据安全性