文章详情

短信预约信息系统项目管理师 报名、考试、查分时间动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

MySQL索引:B+树索引

2021-09-01 11:26

关注

MySQL索引:B+树索引

MySQL索引:B+树索引

B+树索引是传统意义上的索引,这是目前关系型数据库系统中查找最为常用和最为有效的索引。B+树索引的构造类似于二叉树,根据键值快速找到数据

B树

B+树是由B树演化而来的,在了解B+树之前,我们需要对B树有一点认知。
B树全称Balance-tree(平衡多路查找树)定义如下:

  1. 树中每个结点至多有m 棵子树(注:m指的是树的阶);
  2. 若根结点不是叶子结点,则至少有两棵子树(注:根节点至少有两个儿子);
  3. 除根结点之外的所有非叶子结点至少有p个子节点([m/2]≤p≤m,[m/2]为向上取整。);
  4. 所有的非叶子结点中包含以下数据:(n,A0,K1,A1,K2,…,Kn,An)
    其中:
    Ki(i=1,2,…,n)为关键码,且Ki Ai 为指向儿子的指针(i=0,1,…,n),且指针Ai-1 所指子树中所有结点的关键码均小于Ki (i=1,2,…,n),An 所指子树中所有结点的 关键码均大于Kn。(注:每个ki数据两旁各安放了一个指针,即Ai-1和Ai,左边的子树数据统统小于ki,右边子树的数据统 统大于ki)(注:总体来看指针数量比数据数量多1)
    n 为关键码的个数([m/2]-1≤n≤m-1)。
  5. 所有的叶子结点都出现在同一层次上,即所有叶节点具有相同的深度,等于树高度。并且不带信息(可以看作是外部结点或查找失败的结点,实际上这些结点不存在,指向这些结点的指针为空)。
    image

B+树

B+树是为磁盘或者其他直接存取辅助设备设计的一种平衡查找树。在B+树中,所有记录节点都是按键值的大小顺序存放在同一层的叶子节点上,由各叶子节点指针进行连接。
B树每个节点都存储数据,所有节点组成这棵树。B+树只有叶子节点存储数据(B+数中有两个头指针:一个指向根节点,另一个指向关键字最小的叶节点),叶子节点包含了这棵树的所有数据,所有的叶子结点使用链表相连,便于区间查找和遍历,所有非叶节点起到索引作用。

B树中叶节点包含的关键字和其他节点包含的关键字是不重复的,B+树的索引项只包含对应子树的最大关键字和指向该子树的指针,不含有该关键字对应记录的存储地址。

B树中每个节点(非根节点)关键字个数的范围为m/2(向上取整)-1,m-1,并且具有n个关键字的节点包含(n+1)棵子树。B+树中每个节点(非根节点)关键字个数的范围为m/2(向上取整),m,具有n个关键字的节点包含(n)棵子树。

B+树中查找,无论查找是否成功,每次都是一条从根节点到叶节点的路径。
一颗高度为2的B+树
image

B+树的插入

image

B+树的删除

image

B+树索引

聚集索引:

聚集索引是按照每张表的主键构造的一颗B+树,同时叶子节点中存放的即为整张表的行为记录数据,也将聚集缩影的叶子节点成为数据页。
由于实际的数据页只能按照一颗B+数进行排序,因此每张表只能拥有一个聚集索引。此外,由于定义了数据的逻辑顺序,聚集索引能特别快的访问针对范围值的查询。

辅助索引

在辅助索引中,叶子节点不包含行记录的全部数据。叶子节点除了包含键值以外,每个叶子节点中的索引行中还包含了一个书签(bookMark)。概述前用来告诉InnoDB存储引擎哪里可以找到与索引相对应的行数据
辅助索引的存在并不影响数据在聚集索引中的组织,因此每张表尚客优有多个辅助索引

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-数据库
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯