B树
B树
数据库中数据量过大时,平衡二叉树由于深度过大,造成磁盘IO次数多,效率低。
B树也叫平衡多路查找树,它的出现就是为了减少磁盘IO操作,思想是降低树的高度,从==“瘦高”–>“矮胖”==。
核心是让每个节点承载更多的元素,拥有更多的孩子。
优点:改善数据库的查询效率,减少了对磁盘的IO操作次数
缺点:不便于范围查询
一个m阶的B树:单一节点拥有最多子节点的数量,称为B树的阶。
一个m阶B树的具有的特征(或必须满足的条件)
-
如果根节点不是叶子节点,那么它至少有两个节点。
-
所有叶子节点位于同一层(高度一致)。
-
除根节点和叶子节点之外,一个节点至少拥有
ceil( m / 2)
个节点)。ceil() :向上取整,ceil(3/2)=ceil(1.5)=2
-
每个叶子节点包含
k-1
个元素,ceil(m/2)<= k <=m
。若m=3, 2<=k<=3, 1<=(k-1)<=2,也就是3阶的树叶子节点包含1~2个元素
-
拥有
k
个节点的非叶子节点,包含k-1
个元素。
B树的查找
如图是一颗3阶B树,满足B树的特征
查找元素5
第一步