首页 > 试题广场 >

为什么B+树适合数据库索引?

[问答题]
首先解释下为什么不用红黑树,B树,Hash表来做索引
 1.红黑树虽然是一颗自平衡数,而且性能很优秀,但是随着数据量的急速增加数的高度也在急速的增加,而树的高度正是我们要考虑的问题,每一层加载判断会先进行IO操作,IO是非常耗时的,所以我们不用红黑树来做数据库的索引.
 2. B树的话虽然也可以控制层数(即IO操作的次数),但是他将数据都存储在了结点上,这样大大减少的一次IO读取数据的数量(一般一次为16k一个结点效率是最高的)而且当我们需要范围查找时,B数的弊端就显现出来了,不能范围查找!!
 3. Hash表的查找是非常优秀的,增删改查时间复杂度都可以在常数时间内去完成(即时间复杂度O(1)),所以对于查找单个数据操作的Hash表性能是非常的优秀的,但我们大多时间都是范围查找,找多个数据,因此并不适合!

总结: B+数完美的解决了上述数据结构的不足的问题! 即平衡了效率(树的高度是可控的)又能查找范围性的数据~B+数的最低层用的是双向链表结构,故可以很好的范围性查找. 
发表于 2020-08-13 17:34:59 回复(0)
TCP/IP协议中,MSS和MTU分别工作在哪一层?
发表于 2020-04-26 19:02:55 回复(1)