b+ b-树

一、 B-树

  1. 每个节点包含key和data,key和data聚合在一起,查找的时候复杂度不稳定,最好的时候O(lg1)

二、B+树

  1. 非叶子节点不包含data,叶子节点包含data,也就是查找一次的复杂度是稳定的,一定要遍历到叶子节点,时间复杂度O(lgN)

  2. 叶子节点之间增加了指针,可以访问相邻的叶子节点,增加了区域访问的能力(就是可以将数据提前读入内存,减少磁盘IO,例如在范围查找上比较占有优势)

三、应用

  1. mongodb用B-树

      2.mysql用b+树

四、为什么数据库采用B+/B-树

      1. 一般索引很大,不能完全放在内存里,就需要磁盘辅助存储,这种索引可以支持这个特性。

      2. 适合外部存储器是磁盘,迎合磁盘结构。

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

          http://blog.csdn.net/wl044090432/article/details/54409240 (从 MongoDB 及 Mysql 谈B-/B+树)


 

 

原文地址:https://www.cnblogs.com/wuMing-dj/p/6684293.html