(1)B+树只有叶节点存放数据,其余节点用来索引,而B树是每个索引节点都会有Data域(索引放磁盘中,磁盘IO就会增多)
(2) B+树所有的Data域在叶子节点,并且所有叶子节点之间都有一个链指针。这样遍历叶子节点就能获得全部数据,这样就能获得区间访问了。在数据库中基于范围的查询是非常频繁的,而B树不支持这样的操作。
mysql中Myisam和InnoDB都是使用B+树
Myisam和InnoDB的区别:(https://www.jb51.net/article/157181.htm)
(1)默认存储引擎的变迁:在5.1之前使用的是Myisam,5.5之后变成了InnoDB
(2)Myisam表级锁,不支持事务和全文索引,使用大并发,重负荷生产系统上,表级锁结构性能不好,InnoDB行级锁,事务安全(ACID),支持外键,5.6.4之后支持全文索引
(3)Myisam和InnoDB性能测试,随着CPU核数的增加,InnoDB的吞吐量反而越好,而MyISAM,其吞吐量几乎没有什么变化,显然,MyISAM的表锁定机制降低了读和写的吞吐量。
(4)事务支持与否,Myisam是一种非事务的引擎,使得数据库可以提供高速的存储和检索,以及全文搜索能力,适合频繁查询的操作,InnoDB是事务安全的,中间哪个环节出现问题都可以回滚,Myisam不可以
(5)构成上的区别,每个MyISAM在磁盘上存储成三个文件,.frm文件存储表定义,数据文件,其扩展名为.MYD (MYData),索引文件,其扩展名是.MYI (MYIndex),