
此处借用一下整理的对比图表
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字符类型的处理性能