myslql 存储引擎对照表:
二者的区别:
1、事务
- MyISAM是非事务安全的
- 而InnoDB是事务安全的
2、锁
- InnoDB采用MVCC来支持高并发,并且实现了4个标准的隔离级别。
- InnoDB锁的粒度最小为行级锁。
- MyISAM只支持对整张表加锁。
3、索引
- MyISAM支持全文类型索引。而InnoDB不支持全文索引
- MyISAM引擎的索引数据在磁盘上是按照顺序存储的。InnoDB引擎的表数据是随机分布的。
- MyISAM的主键索引的叶子节点下只存放数据在磁盘上的指针,其他次级索引也一样。InnoDB索引的主键索引的叶子节点下直接存放数据,其他次级索引的叶子节点指向主键ID。
4、 存储
- InnoDB的数据存储在表空间中,表空间是一个由引擎管理的黑盒子,由一系列的数据文件组成。InnoDB将每个表的数据和索引存放在单独的文件中。
- MyISAM会将表存储在两个文件中:数据文件以及索引文件,分别以.MYD和.MYI为拓展名。
5、总结
- MyISAM相对简单,效率上要优于InnoDB,小型不涉及事务相关的应用可以考虑使用MyISAM