B树
B树也可以叫做B-树(此处的-是一个连接符而不是减号)。
B树可以认为是一个N叉搜索树,说到N叉搜索树肯定会想到二叉搜索树。
二叉搜索树是什么呢?
二叉搜索树,它可以是一棵空树又或者具有以下性质:若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值; 若它的右子树不空,则右子树上所有结点的值均大于它的根结点的值; 它的左、右子树也分别为二叉排序树。
如图所示:
此时5为根节点,5的左孩子的值要小于5,5的右孩子的值要大于5。
N叉搜索树类似于二叉搜索树,但是二叉搜索树的每个节点只有两个子节点,而n叉搜索树的每个节点有n个子节点。n叉搜索树通常用于处理大量数据,因为它可以有效地将数据分类并存储。
光看上面的解释可能对B-树理解的还不是那么透彻,下面我们用一个实例来进行讲解:
如图所示B树一个节点可以存储N个key并且N个key划分了N+1个区间。
B+树
B+树也是一个N叉搜索树,是在B树的基础上进行了改进。
根据上图,就可以更好的了解B+树。
B+树的特点:
1.一个节点可以存储N个key,每个key划分N个区间。(与B树区分开来)
2.每个节点的key在其子节点中也会存在。
3.B+树的叶子节点首尾相连,类似一个链表。
4.因为叶子节点是完整的数据集合,只在叶子节点这存储数据表的每一行数据。而非叶子节点只存key值本身即可。
B+树与数据库
B+树就是为数据库索引量身定做的一个数据结构。
假设在数据库中,有一个学生表,表的数据就存储在B+树的叶子节点中。