本文我们来介绍一下什么是B+树(面试常考)
那我们先来看下什么是B-树(也叫B树):
然后我们看一下B+树的特征:
下面我们来通过一个具体的例子理解掌握B+树:
那么我们知道了B+树设计成这样,有什么好处呢?
B+树的好处主要体现在查询性能上。
单元素查询:
范围查询
这样的范围查询的确很繁琐,反观B+树的范围查询只需要在链表上做遍历
最后我们来总结一下B+树的特征和优势:
B+树的特征:
1.有k个子树的中间节点包含有k个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引,所有数据都保存在叶子节点。
2.所有的叶子结点中包含了全部元素的信息,及指向含这些元素记录的指针,且叶子结点本身依关键字的大小自小而大顺序链接。
3.所有的中间节点元素都同时存在于子节点,在子节点元素中是最大(或最小)元素。
B+树的优势:
1.单一节点存储更多的元素,使得查询的IO次数更少。
2.所有查询都要查找到叶子节点,查询性能稳定。
3.所有叶子节点形成有序链表,便于范围查询。