MySQL (9)MySQL 索引原理 B+树

来源:互联网 发布:淘宝中国质造加入条件 编辑:程序博客网 时间:2024/06/13 08:04

B+树

这里写图片描述

首先,简单介绍一下B+树的一些特性,B+数是B 树的一个变种。
在B+树中,key 的副本存储在内部节点,真正的 key 和 data 存储在叶子节点上 。
这里写图片描述
也就是说,由于B+树所有的 data 域都在根节点,所以查询 key 为 50的节点必须从根节点索引到叶节点上,才能得到data,时间复杂度固定为 O(log n)。
这里写图片描述

而一般的B-树则不同,B-树的节点是存储数据的
这里写图片描述

为了增加 区间访问性,一般会对B+树做一些优化。 如下图带顺序访问的B+树。
这里写图片描述
B+树叶节点两两相连可大大增加区间访问性,可使用在范围查询等,而B-树每个节点 key 和 data 在一起,则无法区间查找。
这里写图片描述


这里写图片描述
B+树有2个头指针,一个是树的根节点,一个是最小关键码的叶节点。

所以 B+树有两种搜索方法:

一种是按叶节点自己拉起的链表顺序搜索。

一种是从根节点开始搜索,和B树类似,不过如果非叶节点的关键码等于给定值,搜索并不停止,而是继续沿右指针,一直查到叶节点上的关键码。所以无论搜索是否成功,都将走完树的所有层。

B+ 树中,数据对象的插入和删除仅在叶节点上进行。

2 0
原创粉丝点击