B+树
薛定谔see猫 2021/5/3 算法数据结构
# 1. 简介
B+
树是B
树的变体,常用于数据库和操作系统的文件系统中
MySQL
数据库的索引就是基于B+
树实现的
B+
树的特点
分为内部节点(非叶子)、叶子节点2种节点
内部节点只存储
key
,不存储具体数据叶子节点存储
key
和具体数据所有的叶子节点形成一条有序链表
m
阶B+
树非根节点的元素数量X
m/2 <= x <= m
# 2. MySQL
为了减少IO
操作数量,一般把一个节点的大小设计成最小读写单位的大小
MySQL
的存储引擎InnoDB
的最小读写单位是16K
相对于B树,B+
树的优势是
- 每个节点存储的
key
数量更多,树的高度更低 - 所有的具体数据都存在叶子节点上,每次查询都要查到叶子节点,查询速度比较稳定
- 所有的叶子节点构成一个有序链表,做区间查询时更方便