InnoDB:
- 支持事务处理
- 不加锁读取
- 支持外键
- 支持行锁
- 不支持FULLTEXT类型的索引
- 不保存表的具体行数,扫描表来计算有多少行
- DELETE表时,是一行一行的删除
- InnoDB把数据和索引放在表空间中
- 跨平台可直接使用
- InnoDB中必须包含AUTO_INCREMENT类型字段的索引
- 表格很难被压缩
MyISAM:
- 不支持事务,回滚将造成不完全回滚,不具有原子性
- 不支持外键
- 支持全文搜索
- 保存表的具体行数,不带where时,直接返回报讯的行数
- DELETE表时,先DROP表,在重建表
- MyISAM表被存放3个文件。 from文件存放表格定义。数据文件时MYD(MYData)。索引文件是MYI(MYIndex)引申
- 跨平台很难直接拷贝
- MyISAM中可以使用AUTO_INCREMENT类型字段建立联合索引
- 表格可以被压缩
选择:
因为MyISAM相对简单所以在效率上要优于InnoDB,如果系统读多,写少。对原子性要求低。那么MyISAM是最好的选择。且MyISAM回复快。可直接备份覆盖回复
如果系统读少,写多,尤其是并发写入高的时候,InnoDB是首选