问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

MySQL BTREE索引

发布网友 发布时间:2022-10-04 21:44

我来回答

1个回答

热心网友 时间:2023-10-15 23:18

个人能力有限,如有错误请指出,共同学习。

二叉树

B树

B+树

特点:

聚簇索引

二级索引

key数据存储量估算:
若每个页可以存1000个key,而且树的高度是4,那么

前提条件如下:

插入步骤
步骤一
因为索引中还没有数据,所以此时的B+树只有一个空的根结点,又由于一个页只能存3个key,首先将10,20,5插入进去(实际上此步发生了3次插入),然后在页面内做数据排序,最终结果如下图:

步骤二:
由于根页面已经写满,此时插入8,将发生*(根页面*),大致步骤如下:
注意:在*过程中,根结点始终是不会变的,不管变成多大的树,根结点的页面号始终如一。

步骤五:
插入数据40,发现比根结点23大,找到103号页面,发现已满,执行*,*同上面叶子结点的*步骤。*后如图所示:

步骤六:
继续插入下一个数据9,因为比20小,找到101号页面,发现已满,需要做叶子结点*,如下图:

传统B+树的数据删除,一般都会有一个所谓的填充因子,来控制页面数据的删除比例,如果数据量小于这个填充因子所表示的数据量,就会有节点合并,这与*是相对应的。
InnoDB的实现与传统B+树算法有不同之处,InnoDB在删除索引数据时,会先检查当前页剩余的记录数,如果只剩下一条记录,就会直接将这个页面从B+树中摘除,也只有这种情况,InnoDB才会回收一个页面,InnoDB的页面没有合并一说,但是对于根节点,即使索引数据全部删除,根节点页依然存在,只不过是以空页的形式存在。
下面举个例子描述索引删除过程,前提条件与前面插入记录时一致。

删除数据 50

删除过程全部结束,最终得到一个空的索引页。

《MySQL运维内参》
B+树动画演示: https://www.cs.usfca.e/~galles/visualization/BPlusTree.html

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
...另有一盒质量不足,轻一些。至少称几次能保证找出这盒月饼... 9盒月饼中,有一盒质量不足,至少称()次能保证找出这盒月饼 A,2 B,3... 有244盒饼干其中有一盒饼干质量不足这一核轻一些至少称几次才能保证找出... 怎么处理梭子蟹更干净? 有什么学生去西藏穷游的打卡线路分享? 小米13手机系统导航方式哪种好用 哪些公交路线可以到犀浦车管所? 19世纪末,中国面临深重的民族危机。为了挽 救民族危亡,中国人民进行... 为什么我一听伤心的歌情绪很低落。听快节奏的歌就想跳。可是室友们没... 为什么我总是听着伤心的歌就低落 it中文意思是什么 关于it的解释 诗的起承转合分别是什么?都有什么讲究? 含有连续动作的句子 奔驰的保养分为ABCD吗? 一道关于子网划分的题,求解答和思路.... 奔驰Ea7保养是什么内容 中班中秋节班级活动方案 为什么野鸭会飞,家鸭不会飞 如何理解《公司法》第20条的适用 vivo手机发布会 为什么家鸭不会飞?而野鸭会。 粽子没煮熟怎么补救 粽子没煮熟如何补救 窗帘的安装注册商标属于哪一类? 粽子没煮熟怎么补救 粽子半生不熟怎么办 粽子半生不熟如何处理 粽子没煮熟是不好的预兆吗 鸭有翅膀, 为什么不会像鸟一样飞起来呢? 福禄考种植时,需不需要每天浇水? we11done怎么读?- 问一问 中国新民主主义青年团第一次全国代表大会的三中全会 linux 运维 mysql workbench 厚葬友军是谁说的 木工裁板锯片齿形的选择 奔驰c200保养灯b7是什么 高考270分能上什么大学 这打摆子什么意思啊 iphoneX卖的这么疯,为什么8和8p卖不动呢? iPhone 8,8 Plus卖的有多差 iphone8即将面世:苹果手机真的跌下神坛了吗 苹果8,2手机卖出去值多少钱,刚买一天的 寒富苹果果实需要套袋时间多久? lightning接口和typec有啥区别 怎么查看自己? 微信怎么查看自己的和密码 什么人不适合带美瞳 如何查看自己 微信被删除了,怎么查看? 如何做自我介绍显得可爱 可爱有趣的自我介绍范文 怎样知道自己适不适合佩戴美瞳啊 美的空调外机淌黑水