B+树是B树的一个变种,用于查询时有更高的性能,常用作于mySql等关系型数据库的索引进行使用,必须了解一波~
定义:B+树可以简单地看作n叉排序树
常见应用:关系型数据库索引,如mySql索引,和操作系统的文件系统中
优势:
下面通过一个查找元素的例子来进行解析~
查找元素的流程:
上图是B+树查找元素的流程示例,也许第一次看会比较蛋疼,那我们先从它的几个特点说起:
m阶的B+树独有特征:
解析:我们可以对着上面的原则进行解析,图中是一个3阶的B+树,那么m为3,m/2 <= k <= m则k可以取2,3。
PS:根节点的最大元素【图中是15】等同于B+树的最大元素,以后无论插入/删除多少元素,始终要保证最大元素在根节点当中
PS:卫星数据:指的是索引元素所指向的数据记录
PS:B+数作为索引使用时,中间节点不保存数据,只做索引用,所有数据的定位指针【卫星数据】保存在叶子节点中。
PS:在数据库的聚集索引(Clustered Index)中,叶子节点直接包含卫星数据。在非聚集索引(NonClustered Index)中,叶子节点带有指向卫星数据的指针。
原文:https://www.cnblogs.com/riches/p/13020814.html