mysql学习-B+树相关问题

问题一:mysql存储引擎为什么选择多路搜索平衡树,不选择红黑树呢?

B+树是一种多路搜索树,它允许每个节点有多个子节点,这意味着树的高度可以保持相对较低。对于数据库系统来说,数据通常存储在磁盘上,而访问磁盘的成本非常高。B+树通过减少树的高度,从而减少了查询时需要进行的磁盘I/O操作次数。

问题二:B+树为什么非叶子节点只存储索引信息(即键值和指向子节点的指针),而不存储实际数据记录?

提高内部节点的分支度:由于非叶子节点不存储实际的数据记录,它们可以存储更多的键值和子节点指针。这增加了每个节点的分支度,从而减少了树的高度。较低的树高度意味着从根节点到叶子节点的路径更短,对于减少磁盘I/O操作次数特别重要,因为每次访问磁盘的成本相对较高。

优化查询性能:更高的分支度意味着可以在较少的磁盘I/O操作中访问到所需的叶子节点。这对于提高查询性能非常关键,特别是在处理大规模数据集时。

问题三:为什么叶子节点依次相连?

便于范围查询,避免中序遍历回溯去查找下一个节点。

学习链接:https://github.com/0voice

相关推荐
kkkkkkkkkk_Z11 分钟前
新手自学嵌入式 | 学习日记:Linux驱动复习之系统移植(U-Boot篇)
linux·运维·学习
Rabitebla14 分钟前
【系统性学习笔记】Linux 权限篇(二):文件属性、权限修改与目录权限的底层逻辑
linux·c++·笔记·学习·算法
BBmmo25 分钟前
MySQL 里大小写不同的邮箱,为什么会撞上唯一索引?
mysql
专注仿真1 小时前
从「能跑通」到「能交付」:一套可直接落地的电商用户行为分析平台(Python + SQLite/MySQL + Streamlit 全栈源码与部署文档)
python·mysql·sqlite
fanged2 小时前
嵌入式架构学习6--ZSWatch(TODO)
学习
叼烟扛炮2 小时前
Linux 学习笔记(十三):高效排错利器——GDB 调试器入门
linux·笔记·学习
1024奇点2 小时前
【仓颉语言入门 · 第二篇 第 10 课】
开发语言·数据库·ide·mysql·开源
AI职业加油站3 小时前
模数共振行动解读|大模型应用工程师证书,匹配行业 RAG/Agent 落地人才需求
人工智能·学习·算法·职场和发展·职场发展
SZleoWang4 小时前
费曼学习法的4个步骤:选概念、教别人、找缺口、再简化
学习
catino4 小时前
分库分表详解
mysql