1.区别
(1)事务处理:
MyIsam是非事务安全的,不支持事务,Innodb支持事务。
(2)锁机制
MyIsam支持的是表锁,锁粒度比较大,Innodb支持行锁,锁粒度小,支持更多并发。
(3)数据操作
select较多的时候推荐MyISAM;
需要Update和insert,处于安全和性能的考虑,使用Innodb。
(4)查询表的行数不同
查询表包含的记录数时,Mysiam保存了行数,直接返回值,innodb需要遍历全表。
(5)外键
Innodb支持外键
2.MyISAM查询速度快的原因
Innodb查询操作时需要维护的东西比Mysiam多:
(1)数据块,Innodb需要缓冲数据块,而myisam只需要缓冲索引块,这中间还有换进换出的减少;
(2)Innodb需要维护MVCC一致(多版本并发控制)
3.应用场景
MyISAM:查询行数、查询记录;插入和更新不频繁,查询频繁;不需要事务
Innodb:要求事务,可靠性;表更新频繁,并且行锁定的机会较大。
https://www.cnblogs.com/changna1314/p/6878900.html