1.学会使用
2.找到类似的解决方案
3.源码分析
b树与b+树区别
b+树特征
- b+树单一节点存储的元素更多,因为b+树在非叶子结点上不存取卫星数据,拥有k个子树的中间节点有k个元素
- 所有中间节点元素都存在于子节点中,在子节点的元素中是最大或者最小元素
- 所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
上述特征使b+树有以下优势,也是导致与b树不同的原因
b+树优势
1.索引查询的数据主要受限于硬盘的I/O速度,查询I/O次数越少,速度越快。b树/b+树的每个节点的元素可以理解成一次I/O读取。因为b+树中间节点不含卫星数据,所以单一节点存储的元素更多,在同样磁盘页上较b树可以存储更多节点元素,这样就意味着,b+树高度会比b树矮,同行存取元素更多,在查询时执行的I/O读取次数会更少。
2.因为b+树的卫星数据都存在叶子节点中,所以匹配查询结果必须查到叶子结点,而b树不同,卫星数据存在每一个元素中,所以查找并不稳定,最好结果是根节点最坏是叶子结点
3.b树的范围查找是从根节点开始进行中序遍历,而b+树只需要找到范围下限再通过链表指针找到范围上限即可