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)
时间: 2024-11-10 17:01:17