MyIsam和Innodb对比

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的更新性能就会越差.

  

原文地址:https://www.cnblogs.com/ironroot/p/7305538.html