Mysql为什么采用B+Tree

拟墨画扇 提交于 2020-01-08 10:45:11

【推荐】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

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!