B树和B+树笔记

B树和B+树都属于多叉平衡查找树,使得查询时间复杂度为O(logN)。

B树:

树结点:记录——关键字(数据库中的索引),关键字对应记录的指针,子节点的指针。

关键字:数据库中的索引,每个树结点记录的关键字个数大于1小于树的M。

关键字对应记录的指针:根据该指针数据库可以直接查询到该索引对应的数据库记录。

子节点的指针:根据该指针查询子节点,子节点的关键字大小位于父节点某两个关键字的中间。

B+树:

非叶子树结点:记录——关键字(数据库中的索引),子节点的指针,不记录关键字对应的数据

叶子结点:记录——关键字(数据库中的索引),关键字对应的数据(聚簇索引:该索引对应的记录的指针;非聚簇索引:该索引对应的聚簇索引,并通过回表查询该聚簇索引对应的数据)

关键字:数据库中的索引,每个树结点记录的关键字个数大于1小于树的M。

子节点的指针:根据该指针查询子节点,子节点的关键字大小位于父节点某两个关键字的中间。

B树的优点:B树查询数据时,如果查询的数据离根节点很近,且树结点中记录了对应记录的指针,因此可以较为快速的获取该条数据,不用遍历到叶子结点。

B+树的优点:1.非叶子结点不记录索引对应的记录的指针,因此可以用更多空间用于存放索引记录,降低了树的高度,可以快速的进行查询。

       2.所有关键字的数据都记录在叶子结点,因此查询速度稳定(都需要遍历到叶子)。

                      3.全结点遍历更快速,遍历叶子链表而不是遍历树。

猜你喜欢

转载自www.cnblogs.com/ybonfire/p/11742073.html