首页 > 代码库 > mysql 中的B+、B-树

mysql 中的B+、B-树

1. 基本的二叉树查找 

    每个节点的出度是2,所以查找的时间复杂度,O(log2底n)

2.B- 树

 每个节点会包含key数组、point数组和data,

   key的大小则为出度大小,用d表示,所以查找的时间复杂度是 O(logd底n),所以效率

   高很多。

3.B+ 树

  每个节点point的个数上限是2d,不是2d+1,

  节点上没有data字段,比较适合外存储索引结构,

   许多实际的存储系统在经典B+树基础上实现了顺序访问指针,就是叶子节点可以访问相邻的节点。

4.DB里面为什么使用B-(B+)树

   每次新建节点的时候,可以申请一个页的空间,保证在物理上也是一个页的大小,这样访问一个节点只需要一次IO,

   另外时间复杂度很低。

 

 

参考 : http://blog.codinglabs.org/articles/theory-of-mysql-index.html


O(log2n)O(log2n)

 

mysql 中的B+、B-树