mysql索引原理------为什么mysql索引要选择B+树这种数据结构,而不是二叉树,红黑树,B树?

为什么mysql索引要选择B+树这种数据结构,而不是二叉树,红黑树,B树?
首先我们看看二叉树的结构
在这里插入图片描述
图片上可以明显看到树的高度是6,如果我们要查询6这个元素的话我们要进行6次查询,这显然不满足实际开发得需求。
然后是红黑树,红黑树是一棵平衡二叉树
在这里插入图片描述
可以明显的看到同样的元素,在红黑树的存储的高度比二叉树要低,红黑树会同股哟左旋右旋的操作来减少树的高度,从而到达减少我们查询树种元素的次数来提高查询效率,当然这个就满足我们对数据库查询的要求了吗?
下面我们来看看B树:
在这里插入图片描述
图片上可以明显看到,B树和红黑树相比,B树变胖了,一个node上可以存储多分数据,而且B树是多叉树,就是说一个B树的node可以有多个子节点,这相比红黑树又进一步减少了树的高度,当然这还是不满足索引的需要。我们再看看B+树:
在这里插入图片描述
图片上我们可以看到,B+树的数据都会浓郁()存储在叶子结点,而且叶子结点之间都又指针指向,这会提高查询范围的效率。
所以B+树才是最适合做查询索引的树结构。

发布了61 篇原创文章 · 获赞 102 · 访问量 27万+

猜你喜欢

转载自blog.csdn.net/qq_17011423/article/details/104668352