- InnoDB 支持外键和事务,MyISAM 不支持
- InnoDB 支持行锁和表锁,MyISAM 只支持表锁
- InnoDB 有重启后的崩溃恢复功能 (基于事务)
- MyISAM 只缓存索引,不缓存真实数据;InnoDB 不仅缓存索引还缓存真实数据,对内存要求较高,且内存大小对性能有决定性的影响
- 数据量较小,且操作多为插入和查询时,MyISAM 性能高一些
- MyISAM 针对数据统计有额外的变量存储,故 count(*) 的查询效率很高
- 数据文件结构
- InnoDB:表名.frm (存储表结构,8.0 时被合并到 .ibd 中)、表名.ibd (存储数据和索引)
- MyISAM:表名.frm (存储表结构)、表名.myd (存储数据)、表名.myi (存储索引)
MySQL 5.5 开始默认存储引擎为 InnoDB (之前为 MyISAM)