插入:
1、当叶子页未满时:将记录插入对应的叶子页中
2、当叶子页已满,索引页未满时:拆分叶子页,将中间的节点放入索引页,小于中间的节点放左边,大于等于中间的节点放右边
3、当叶子页已满,索引页已满时:拆分叶子页,小于中间的节点放左边,大于等于中间的节点放右边,拆分索引页,小于中间页的记录放左边,大于中间页的记录放右边,中间节点放入上层索引页
4、当叶子页兄弟子页未满,索引页已满时:B+树不会急于去拆分节点,而是作旋转,通常情况下左兄弟页被首先检查用了做旋转,可以减少页的拆分操作。
删除:
B+树使用填充因子来控制树的删除变化,填充因子是指数据填充的百分比,最小可设为50%
1、当删除节点后,对应的叶子页大于填充因子时:直接删除节点
2、当删除节点后,对应的叶子页大于填充因子,但是该节点也是索引节点:直接删除节点,将右边的节点更新到对应的索引页上
3、当删除节点后,对应的叶子页小于填充因子时:合并页节点及其兄弟节点
4、当删除节点后,对应的叶子页小于填充因子,该节点也是索引节点:合并页节点及其兄弟节点,更新索引页
5、当删除节点后,该节点也是索引节点,并且删除该节点索引页也小于填充因子时:合并页节点及其兄弟节点,合并索引页