此处借用一下整理的对比图表
InnoDB 存储引擎
功能简介
支持事务
行锁设计
支持外键
非锁定读
多版本并发控制(MVCC)
next-key locking
插入缓冲(insert buffer)
二次写(double write)
自适应哈希索引(adaptive hash index)
预读(read ahead)
存储 构成
idb 文件
frm 文件
适用场景: 在线事务处理(OLTP)
缺点:不适用于分析类语句,连表查询不建议超过三张表
MyISAM 存储引擎
功能简介
全文索引
缓冲池之缓存(cache)索引文件,不缓冲数据文件
存储构成
MYD(数据文件)
MYI(索引文件)
适用场景: 分析类查询(OLAP)
缺点: 不支持事务
NDB 存储引擎
功能简介
集群存储引擎(类似 RAC),share nothing集群架构
通过添加存储节点线性提高数据库性能
存储 构成
数据全部在内存中
缺点: 复杂的连接操作需要巨大的网络开销,查询速度慢
Memory 存储引擎
功能简介
只支持表锁
存储构成
数据在内存中
适用场景
作为临时表使用
缺点
重启或崩溃,数据将消失
只支持表锁,并发性能差
不支持 TEXT 和 BLOB 列类型
存储变长字段时按照char的方式进行
大于Memory存储引擎表的容量设置,会转换为MyISAM存储形式,性能会有损失
Archive 存储引擎
功能简介
只支持 INSERT 和 SELECT
支持行锁来实现高并发插入操作
存储构成
zlib算法压缩存储
适用场景: 适合存储归档数据
缺点: 不支持事务安全
Maria 存储引擎
支持功能
缓存数据
索引文件
行锁设计
支持 MVCC
支持事务和非事务安全
更好的BLOB字符类型的处理性能
