以下的内容非个人原创,来自于网络上资料的整理,主要是stackoverflow。
选择MyISAM的场景[1]
1. 读请求远远大于写请求
2. 低版本的MySQL(小于5.6)需要全文搜索的功能
3. 其他场景下,均推荐使用innodb
区别[2]
1. 锁。MyISAM使用的是表锁,在写比较多得情况下,性能很差;与之对比的,innodb使用的时行级锁(row-locking),写的并发度较MyISAM好。
2. 事务。MyISAM不支持事务,Innodb则支持
3. 速度。对于“几乎只读”的表,MyISAM速度会更快。
4. 外键。Innodb支持外键。
个人观点
任何软件的使用都是需要看场景的,具体问题具体分析。一般来说,推荐使用Innodb,因为它更像一个现代的数据库。