【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
为什么不是B-Tree或者红黑树呢
为什么不是B-Tree
1.减少IO次数
磁盘每次IO读取出的数据量大小是一致的,当单次IO查询出的内容越多,那么查询的IO次数就越少,性能就越好。
而B-Tree因为其根节点存放的有指针,所以自然其内存消耗多,同等数据体量下IO次数也要比B+Tree多。
2.基于范围查询性能考虑。
因为B+Tree只有叶子节点才存放指针,叶子上有优化,所有的叶子节点可以通过指针串联起来,方便基于范围查询的频繁访问。
3.最主要的还是因为B+Tree的遍历效率高。
为什么不是红黑树之类的
大量数据下,红黑树他们因为深度过大,而造成的IO读写过于频繁,不适合检索。
B-Tree
B+Tree
来源:oschina
链接:https://my.oschina.net/fusublog/blog/3154709