数据库索引篇(二叉树/B-Tree)对比结构讲解

我们可以先看一下 二叉树的一个结构
数据库索引篇(二叉树/B-Tree)对比结构讲解_第1张图片
简单将数据分成左右两侧 左侧小于36 右侧大于36 在下面再以这种方式继续划分

但二叉树的结构就有一个非常大的弊端
数据库索引篇(二叉树/B-Tree)对比结构讲解_第2张图片
如果我们后续插入的数据全部小于 或 大于36 他就会 变成这样 一个链表 查询效率大大降低

因为 比如 你想找什么数据 都会先到最上面的36 然后根据大于或小于 一层一层往下找
但如果形成了这样的结构 那就还是相当于一个一个找了

这个问题其实红黑树能解决 红黑树其实也是一个二叉树 但他能够自平衡 不会造成这种变成一个单项链的结果
数据库索引篇(二叉树/B-Tree)对比结构讲解_第3张图片
但说白了 他还是一个二叉树 当数据非常多 层级就会非常深 查询效率就还是不够高

然后 我们来看一下 B-Tree 又称 : 多路查找平衡树
数据库索引篇(二叉树/B-Tree)对比结构讲解_第4张图片
如图 四个key 对应五个节点 小于20 走第一个指针 二十到三十之间 走第二个指针
三十到六十走第三个指针 六十到 八十九 走第四个指针 大于八十九 做第五个指针

在这个结构中 指针比key多一个

也就是通过key一层一层定位范围 但因为范围更大 查询效率会高很多

你可能感兴趣的:(数据库)