B+Tree

 mysql中普遍使用B+Tree做索引,但在实现上又根据聚簇索引和非聚簇索引而不同。

聚簇索引 :
所谓聚簇索引,就是指主索引文件和数据文件为同一份文件,聚簇索引主要用在Innodb存储引擎中。在该索引实现方式中B+Tree的叶子节点上的data就是数据本身,

非聚餐索引 :
非聚餐索引就是指B+Tree的叶子节点上的data,并不是数据本身,而是数据存放的地址。主索引和辅助索引没啥区别,只是主索引中的key一定的是唯一的。主要
用在MyISAM存储引擎中

B+Tree : 非叶子节点只存Key,大大的减少了非叶子节点的大小,那么每个节点就可以存放更多的记录,树更矮了,I/O操作更少了。所以B+Tree拥有更好的性能。

 

在B+Tree的每个叶子结点增加一个指向相邻叶子节点的指针,就形成了带有顺序访问指针的B+Tree.做这个优化的目的是为了提高区间访问的性能,例如图4中
如果要查询key为18到49的所有数据记录,当找到18后,只需顺着节点和指针顺序遍历就可以一次性访问到所有数据节点,极大提高了区间查询效率。


key为主键,如果是一般索引的话,data便会指向对应的主索引,

小蚊子大人
原文地址:https://www.cnblogs.com/ywsheng/p/14977526.html