1. B树

1.1 B树插入

插入26,得到下图结果,插入后的终端结点中的关键字数大于m-1,需对结点进行分裂

左部26,中间值为30,右部为37,左部放在原来的结点,右部放入新的结点,中间值则插入到父结点中,并且父结点会产生一个新的指针,指向新的结点的位置,如下图所示:

1.2 B树删除

来源:https://juejin.cn/post/6844903673668042759

情况一:删除“I”,直接删除

情况二:删除“G” (下图),删除后可向左或右邻节点借

​ 删除“L”(下图)

情况三:删除“G”(下图),左右邻节点都不能借,父节点拿下来合并

情况四:删除“C”,删除后影响平衡

情况五:删除“M”,删除非叶子节点

情况六:删除“D”,删除根节点

2. MySQL 为什么用B+Tree

来源:https://juejin.cn/post/7081065180301361183

二叉树:性能为log2N,当N比较大的时候,数的深度比较大,严重依赖磁盘I/O,最差会退化为链表

B树:需要中序遍历查找

B+树: