1.事物支持
MyIsam引擎不支持事物,Innodb支持事物
2.锁粒度
MyIsam支持表锁,Innodb支持行级锁和表锁,行级锁实现的方式是通过对索引加锁.
3.数据安全性
MyIsam相较于Innodb数据容易损坏,不容易恢复.
4.索引
MyISam主键索引和普通索引相同,都是保存的数据行的指针
Innodb主键索引是聚簇索引,普通索引则是保存主键索引的值,普通索引查询需要一次额外的书签查找.
5.外键支持
MyISam不支持外键约束,Innodb支持外键约束.
6.分区支持
MyISam不支持分区,Innodb支持分区.
一般认为MyISam查询性能高于Innodb是因为,MyISam的索引设计不需要书签查找,节省了一次查询操作,而早期的Innodb对于书签查找相当于随机IO,不能充分利用B+树索引的排序特性和mysql的缓存机制,因而查询比较慢.
但是Innodb自5.6后支持MRR优化,相当于对于要进行书签查找的数据进行一次排序,转化为了顺序查找,查询的差别已经很小了,因此这种说法不太准确了已经.
而Innodb的更新性能高于MyIsam则是因为普通索引保存的是主键索引,更新只需要维护主键索引即可,而MyIsam则需要维护所有的索引,当索引越多,MyIsam的更新性能就会越差.