我的编程空间,编程开发者的网络收藏夹
学习永远不晚

MySQL索引:B+树索引

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

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

MySQL索引:B+树索引

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

MySQL索引:B+树索引

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

MySQL索引:B+树索引

MySQL索引:B+树索引B+树索引是传统意义上的索引,这是目前关系型数据库系统中查找最为常用和最为有效的索引。B+树索引的构造类似于二叉树,根据键值快速找到数据B树B+树是由B树演化而来的,在了解B+树之前,我们需要对B树有一点认知。B树全称Balance-
MySQL索引:B+树索引
2021-09-01

B+树索引

https://www.iteye.com/blog/zhuyuehua-1872202 1.索引结构        1.1 B+树索引结构       从物理上说,索引通常可以分为:分区和非分区索引、常规B树索引、位图(bitmap)索引、翻转(revers
B+树索引
2022-04-10

B树索引

https://www.cnblogs.com/xqzt/p/4456746.html  B-Tree索引是最常见的索引结构,默认创建的索引就是B-Tree索引。一、B树索引的结构B-树索引是基于二叉树结构的。B-树索引结构有3个基本组成部分:根节点、分支节点
B树索引
2014-08-16

MySQL中B树索引和B+树索引的区别是什么

本文小编为大家详细介绍“MySQL中B树索引和B+树索引的区别是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL中B树索引和B+树索引的区别是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。如果用
2023-06-29

索引原理及B树索引

索引原理及B树索引http://hongyitong.github.io/2017/01/05/%E7%B4%A2%E5%BC%95%E5%8E%9F%E7%90%86%E5%8F%8AB%E6%A0%91%E7%B4%A2%E5%BC%95/一、索引的原理说
索引原理及B树索引
2020-03-30

MySQL 树形索引结构 B树 B+树 - G

MySQL 树形索引结构 B树 B+树 如何评估适合索引的数据结构索引的本质是一种数据结构内存只是临时存储,容量有限且容易丢失数据。因此我们需要将数据放在硬盘上。在硬盘上进行查询时也就产生了硬盘的I/O操作,而硬盘的I/O存取消耗的时间要比读取内存大很多。因此
MySQL 树形索引结构 B树 B+树 - G
2021-08-06

MySQL的B+树索引和hash索引的区别

简述一下索引:索引是数据库表中一列或多列的值进行排序的一种数据结构;索引分为聚集索引和非聚集索引,聚集索引查询类似书的目录,快速定位查找的数据,非聚集索引查询一般需要再次回表查询一次,如果不使用索引就会进行全表扫描;还有可以进行多字段组成联合索引,但是要符合最
MySQL的B+树索引和hash索引的区别
2016-10-05

MySQL索引底层:B+树详解

当我们发现SQL执行很慢的时候,自然而然想到的就是加索引。对于范围查询,索引的底层结构就是B+树。今天我们一起来学习一下B+树哈~

数据库索引技术之B树索引

跟我们在 LSM树 一节中提到的 SSTable 一样,B树也是将数据组织成有序形式,因此支持范围查询。尽管如此,它们的底层结构却完全不同,B树有自己独特的设计哲学。

为什么MySQL用B+树做索引

索引这个词,相信大多数人已经相当熟悉了,很多人都知道MySQL的索引主要以B+树为主,但是要问到为什么用B+树,恐怕很少有人能把前因后果讲述的很完整。本文就来从头到尾介绍下数据库的索引。 索引是一种数据结构,用于帮助我们在大量数据中快速定位到我们想要查找的数据
为什么MySQL用B+树做索引
2017-02-01

MySQL用B+树(而不是B树)做索引的原因

https://www.jianshu.com/p/7ce804f97967众所周知,MySQL的索引使用了B+树的数据结构。那么为什么不用B树呢?先看一下B树和B+树的区别。1.B树维基百科对B树的定义为“在计算机科学中,B树(B-tree)是一种树状数据结
MySQL用B+树(而不是B树)做索引的原因
2020-03-03

Hash 索引和 B+ 树索引:一文读懂它们

Hash 索引使用哈希表作为其底层数据结构,通过哈希函数将索引键值映射到一个固定大小的数组中,从而实现快速的数据访问。
HashB+索引2024-11-28

MySQL索引-B+树是如何生长的

本次会先从一个数据页中如何存储和查询数据开始,拓展到多个数据页中查询数据,分析无索引查询时的低效率问题,然后通过页分裂过渡到主键目录以及索引页相关内容,见证一颗索引树是如何一步步生长起来的。

MySQL的B+树索引的具体使用

目录一、索引概述二、B+树索引三、B+树索引的原理四、B+树索引的优点五、B+树索引的缺点六、索引的创建七、索引的优化一、索引概述在mysql中,索引是一种数据结构,它可以帮助数据库系统更快地检索数据。索引可以比作一本书的目录,它可以让我
MySQL的B+树索引的具体使用
2024-08-27

mysql 使用B+树索引有哪些优势

搞懂这个问题之前,我们首先来看一下MySQL表的存储结构,再分别对比二叉树、多叉树、B树和B+树的区别就都懂了。 MySQL的存储结构表存储结构单位:表>段>区>页>行 在数据库中, 不论读一行,还是读多行,都是将这些行所在的页进行加载。也
2022-05-25

MySQL索引的数据结构-B+树介绍

1.聚集索引和辅助索引在数据库中,B+树的高度一般都在24层,这也就是说查找某一个键值的行记录时最多只需要2到4次IO,这倒不错。因为当前一般的机械硬盘每秒至少可以做100次IO,24次的IO意味着查询时间只需要0.02~0.04秒。数据库中的B+树索引可以分
MySQL索引的数据结构-B+树介绍
2017-02-08

编程热搜

目录