MySQL 存储引擎之 MyISAM 与 InnoDB 对比
存储引擎 | MyISAM | InnoDB |
---|---|---|
主外键 | 不支持 | 支持 |
事务 | 不支持 | 支持 |
行表锁 | 表锁,即使操作一条记录也会锁住整个表 | 行锁,操作时只锁住一行,不对其他行有影响,适合高并发场景 |
表空间 | 小(MyISAM 的数据会有三个文件,.MYI 存储索引,.MYD 存储数据,.frm 存储表结构)。 | 大(InnoDB 的数据只有两个文件,.frm 文件存储表结构,.ibd 文件存储数据和索引)。 |
关注点 | 性能 | 事务 |
缓存 | 只缓存索引,不缓存真实数据 | 都缓存,对内存要求高,而且内存大小对性能有决定性影响 |