随着MySQL的不断更新,MySQL常用的两大存储引擎的MyISAM和InnoDB也在不断的变化着,下面总结下这两大存储引擎的特点,朋友们可以根据业务需求,选择合适的存储引擎。^.^
MyISAM引擎的特点:
1、堆组织表;
2、不支持事务;
3、数据文件和索引文件分开存储;
4、支持全文索引;
5、主键索引和二级索引完全一样都是B+树的数据结构,只有是否唯一的区别(主键和唯一索引有唯一属性,其他普通索引没有唯一属性。B+树叶子节点存储的都是指向行记录的row pointer);
6、有特殊计数器记录当前记录数;
7、不支持Crash recovery;
8、索引文件很容易损坏;
InnoDB引擎的特点:
1、索引组织表;
2、支持事务;
3、数据文件和索引文件存储在同一个表空间中;
4、在5.6以前,不支持全文索引;
5、主键和二级索引数据结构一样都是B+树,但叶子节点存储的键值不一样(主键的叶子节点存储整行数据,因此也称为聚集索引;而二级索引的叶子节点存储是主键的键值)
6、支持Crash recovery;
7、相同数据量时,InnoDB表空间文件大小约为MyISAM引擎的1.5~2倍;
想了解更多关于MyISAM和InnoDB的性能对比,可以参考Percona的这个http://www.percona.com/blog/2007/01/08/innodb-vs-myisam-vs-falcon-benchmarks-part-1/
时间: 2024-11-06 09:23:00