1.B+树,其实就是指:所有叶子节点存储数据,非叶子节点存储的是叶子节点的地址的树结构
这里要搞清楚是什么是叶子节点,什么是非叶子节点,叶子节点指的就是没有子节点的节点,就是最下面的节点。非叶子节点就是有子节点的节点。弄清楚这些后,再来看B+树,其实就好理解了。
1.所有的数据在所有的子节点中,非子节点里面存的是地址,5 28 65 不是数据 ,而是索引(地址),真正的数据在子节点中。
2.有叶子节点才记录数据,非叶子节点只包含索引;所有的非终端节点(内部节点)并不存储数据信息,而是保存其叶子节点的最小值作为索引。 这样,一次性读入内存中的需要查找的关键字也就越多。相对来说IO读写次数也就降低了。
3.能够提供稳定高效的范围扫描(range-query)功能;这也是为什么数据库和操作系统中的文件系统通常会采用b+树作为数据索引的原因,这个特点主要因为所有叶子节点相互连接,并且叶子节点本身依关键字的大小自小而大顺序链接。