比较项 | MyISAM | Innodb | 备注 |
---|---|---|---|
存储文件 | 数据和索引分别存储,数据.myd,索引.myi。支持文件级别的拷贝移动。 | 数据和索引集中存储。.ibd。不支持文件级别的移动,还有其他的相关文件。 | |
文件移动 | 支持 | 不支持 | |
记录存储顺序 | 插入顺序,在表末尾插入记录。 | 主键顺序,插入是需要排序操作。 | |
空间碎片 | 产生。定时整理。使用命令optimize table 实现 | 不会产生 | |
事务 | 不支持 | 支持 | |
外键约束 | 不支持 | 支持 | |
全文索引 | 支持 | 不支持(5.7后支持) | 鸡肋产品,MysQL的全文索引不支持中文! |
锁支持 | 表级锁定。 | 行级锁定,表级锁定 | 锁的粒度越小,并发处理能力越强。 |
并发能力 | 弱 | 强 |
如果没有需求,请选择MySQL推荐的Innodb!
MyISAM:以读写插入为主的应用程序。例如,博客,新闻发布,门户。
Innodb:更新(删除)操作也是主要操作,或者要求数据的完整性较强。并发性好,支持事务和外键保证数据完整性。例如,OA办公自动化系统。