B+树是针对数据库特点,对B树进行的改造。

B树构建:https://www.cnblogs.com/RambleIvy/p/12925459.html

相对B树,B+树的改动在于

1.非叶结点中的每一个key为子结点中最大的key值,因此非叶结点中的Pi数量与Ki数量相等。

2.所有的信息都存储在叶结点中,每次访问都需要访问到叶结点才能得到数据在磁盘上的存储位置

3.所有叶结点按序链接在一起

B+树这样设计的理由是,数据库中的数据往往不是一次性可以载入到内存中的,因此常需分页查找(OS里对分页查找的运用非常广泛)。B+树将非叶结点全部作为索引节点,每一个索引节点只保存Ki Pi,而不保存Ki数据的磁盘地址,使得每次分页查询可以载入更多的结点到内存,减少I/O次数,从而提升效率。

因此,B树在纯内存的环境下查找效率其实是高于B+树的。

posted on 2020-05-20 19:05  此夜望月  阅读(169)  评论(0编辑  收藏  举报