Mysql存储引擎
MyISAM
存储组成
- 表定义的扩展名.frm(frame 存储表定义)
- 数据文件的扩展名.MYD(MyData,存储数据)
- 索引文件的扩展名.MYI(MyIndex,存储索引)
特点
- 不支持事务,不支持主外键约束,支持全文索引(优化like查询)
- 表级锁定[更新锁定整个表],并发低。
- 读写互相阻塞,写入阻塞读,读阻塞写,读不阻塞读。
- 不缓存数据,只缓存索引。
- 读取速度较快
InnoDB
存储组成
- .frm 表结构文件
- .ibd 表数据文件(数据目录)
- 系统元数据和undo space(共享表空间)
特点
- 支持事务,支持四个隔离级别,支持多版本读取。
- 行级锁定,全表扫描仍然会是表锁。
- 支持崩溃修复能力和MVCC。
- 读写阻塞和隔离级别相关。
- 高效缓存,缓存索引和数据。
- 支持分区表空间。
- 支持外键约束。
- 支持自增列。
- 索引和数据紧密捆绑
页结构
适用场景
myisam
频繁使用count
增删改频率低,查询频繁
无事务
Innodb
增删改查频繁
可靠性要求高,需要支持事务