老师你好,请问为什么索引结构要使用b+树呢,二叉树为何不可

来源:13-10 对于红黑树,任何不平衡都会在三次旋转内解决?

qq_湿腻焦糊_0

2018-10-30

写回答

1回答

liuyubobobo

2018-10-31

二叉树可以,不是不可以。


B树是一种更适合于应用在外存场景的数据结构,考虑的是整体数据不能放在内存的情况(比如数据库)。在这个场景下,磁盘读取所消耗的性能过大,在树节点之间转移是很耗时的操作,不能忽略不计。(实际上,即使在内存中,也是如此。可以尝试一下一组数据,存在在静态数组中和存放在树中,便利访问的性能差距,虽然理论上的时间复杂度都是O(n)的。)


简单理解:b树将更多内容放在同一个节点,对同一个节点的操作转入内存中完成,减少磁盘操作,减少在外存中节点之间转移的次数,以达到提高效率的目的。


关于B树更多的内容资料,可以参考这里:https://coding.imooc.com/learn/questiondetail/64187.html


加油!:)

3
5
liuyubobobo
回复
qq_湿腻焦糊_0
b+树中一个节点的大小和磁盘预读的一页的大小是相同的:)
2019-01-23
共5条回复

玩转数据结构

动态数组/栈/队列/链表/BST/堆/线段树/Trie/并查集/AVL/红黑树…

6221 学习 · 1704 问题

查看课程