B tree
- 为实现高效的磁盘存取而设计的多叉平衡搜索树,在文件系统,数据库系统中非常重要
- 类似普通的二叉树,但是允许每个节点有更多的子节点,每个节点存储更多的信息,以降低I/O操作数
- 每个节点存多个关键字
- 每个节点所存的关键字个数有一个范围:即至少要有几个,最多要有几个
- 键值有序
- 为了维持子节点数在预先设定的数量范围内,内部节点可能会被合并或分离
B+ tree
- 叶子节点增加了指针,即相邻叶子节点顺序链接
- 存取redundant的关键字
Difference between B tree and B+ tree
- 在B tree中,关键字(key)以及数据(data)可以存在内部节点,也可以存在叶子节点,而在B+ tree中,内部节点只存关键字,只有在叶子节点才存关键字以及该关键字对应的数据。
- B+ tree磁盘读写代价更低,因为其内部节点没有指向关键字具体信息的指针,所以同一盘块所能容纳的关键字数量更多。