B+树是B树的变种,有着比B树更高的查询效率。
因为是4阶B+树,所以每个节点最多可以存储3个元素
每一个父节点都会出现在子节点中,是子节点中最大或者最小的元素
除了图中所说的,每个叶子节点都会带有指向下一个叶子节点的指针,形成一个有序链表
在聚集索引(Clustered Index)中,叶子节点直接包含卫星数据,在非聚集索引(Non Clustered Index)中,叶子节点带有指向卫星数据的指针。
在B+树中,所有记录节点都是按键值的大小顺序存放在同一层的叶节点
中,各叶节点用指针
连接。因此在进行插入删除操作时,要进行调整,维持其平衡性。
插入过程
1、如果是一个空树,那么创建一个叶子节点,然后将记录插入该叶子节点,插入操作结束
2、如果只有叶子节点,那么会根据key值,找到叶子节点,然后再这个叶子节点中插入记录,如果叶子节点中记录的个数小于等于B+树的阶数-1
,那么插入结束;如果大于,就会将这个叶子节点分裂为两个叶子节点,左边的叶子节点包含前阶数/2
个记录,右边叶子节点包含剩余的记录,然后将第阶数/2+1
个元素进位到父节点,这个父节点的左指针指向左子节点,右指针指向右子节点,插入结束。