八股:MySQL 的 B+ 树中查询数据的全过程详解
MySQL 的 B+ 树中查询数据的全过程详解
对话解析
大佬: 我刚才在用Mysql查数据,我知道这个数据是以B+树的形式存储的,那这个B+树里面,是咋找到我想要的数据的,你能给我详细讲讲不?
凯歌: 没问题,老样子,我先上图,再解释。
凯歌: 图一展示从根节点到叶子节点之间的过程
凯歌: 图二展示从叶子节点到数据的过程
凯歌: 两个图看完后我们开始讲解详细过程
凯歌: 第一步:从根节点到开始,我们通过二分查找,找到我们要找的数据在哪一个区间,定位到下一阶的子节点位置
凯歌: 第二步:从内部节点开始,我们继续通过二分查找,找到我们要找的数据在哪一个区间,定位到下一阶的子节点位置
凯歌: 第三步:还是通过二分查找,我们找到叶子节点,所在的位置,然后进入叶子节点。
凯歌: 第四步:进入叶子节点后,我们先找到页目录,我们继续通过二分查找,找到数据所在的槽
凯歌: 第五步:找到槽后,比如我们想要找到主键为3的记录,我们可以知道,槽2可以调到数据4
凯歌: 第六步:记录是单项链表连接的,我们从槽2->主键4->主键3,这是行不通,这时,因为槽是连着的,所以我们可以得到槽1的位置
凯歌: 第七步: 得到槽1的位置后,我们通过槽1->主键2->主键3得到最终数据
PS:实际上,每个分组的记录是有数量限制的,上面是简化
第一个分组,只有一条记录
中间分组可以有4-8条记录
最后一条分组1-8条记录
大佬: 哦哦哦,这么看,我就差不多了。
凯歌:以上,就是我们本次关于MySQL 中B+树中查询数据的全过程的讲解了,若有错误,请帮忙指出,一定修改。
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
内容推荐
Day 22✅ 今天做了:分布式锁, 秒杀优惠券一人一单⏰ 明天计划:9.23原神更新玩原神
1
day47第二部分弄完了,可以编辑个人信息页面。开始编写的时候不是手机类型的页面,而是网站类型,后面让ai帮我改成了长宽比例为正常手机的页面。然后写好编辑个人信息页面。依旧算法一题。这几天把ai编程工具御三家用了个遍,由于签到,积分都用不完。(本来用得少,只是学项目报错更改)明天加快进度!
3
Day 23✅ 今天做了:原神新剧情, 丑角KO若娜瓦⏰ 明天计划:继续学分布式锁
2
Day 24✅ 今天做了:玩,放中秋了⏰ 明天计划:再玩两天吧,周日开始学,打卡不能断
0
Day 25✅ 今天做了:玩⏰ 明天计划:继续学分布式锁
0
