主要区别在于InnoDB支持事务,而MyISAM不支持事务.
还有许多其他的不同之处,但我所知道的共同点是:
- MyISAM通常被认为搜索速度更快,但最近InnoDB的改进消除了这一差异,并提高了高并发工作负载性能
- InnoDB支持事务,而MyISAM不支持
- InnoDB支持引用完整性,而MyISAM不支持
- InnoDB处理索引的方式稍有不同,将主键存储 for each 索引的一部分(使索引占用磁盘上更多的空间,但也使覆盖索引更有可能)
- MyISAM执行表级锁定,而InnoDB可以执行行级锁定
- MySQL配置文件中使用不同的内存/缓冲区/索引设置
- InnoDB通常被认为具有更好的崩溃恢复能力
- 正如在另一个答案中提到的,数据在磁盘上的存储方式不同.我相信InnoDB在这方面是可配置的,如果需要,每个表可以有一个文件,等等
我相信谷歌搜索或MySQL站点会更详细地引出许多其他的不同之处.