B树

Posted by Liao on 2020-05-16

B-Tree(B树)

B树属于多叉树又名平衡多路查找树(查找路径不只两个),数据库索引技术里大量使用者B树和B+树的数据结构

如果数据库索引用红黑树的话,会导致读取磁盘次数过多,并且读取出来的数据也会浪费很多。例如一个结点能存一页,一页有16K数据

由于 B+ 树分支比二叉树更多,所以相同数量的内容,B+ 树的深度更浅,深度代表什么?代表磁盘 io 次数

m阶B树有如下特点(阶表示一个节点最多孩子节点的个数)

  • 根节点至少有两个孩子节点
  • 每个中间节点都包含k-1个元素和k个孩子(m/2<=k<=m)
  • 所以叶子节点都在同一层
  • 每一个叶子节点都包含k-1个元素(m/2<=k<=m)
  • 每个节点都存有索引和数据,也就是对应的key和value。

B+树