首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
为什么B+树适合数据库索引?
[问答题]
为什么B+树适合数据库索引?
查看答案及解析
添加笔记
求解答(2)
邀请回答
收藏(87)
分享
纠错
2个回答
添加回答
2
这是骐通
首先解释下为什么不用红黑树,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)
0
古罗马哥哥古巴比伦
TCP/IP协议中,MSS和MTU分别工作在哪一层?
发表于 2020-04-26 19:02:55
回复(1)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
哔哩哔哩
2019
数据库
Java工程师
操作系统
来自:
哔哩哔哩2019秋招技...
上传者:
小小
难度:
2条回答
87收藏
3796浏览
热门推荐
相关试题
下面描述中,符合结构化程序设计风格...
北京搜狐互联网信息服务有限公司
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
下面哪些项是TCP具有的能力?()
网络基础
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
测试工程师
哔哩哔哩
2019
评论
(11)
来自
哔哩哔哩2019秋招技术...
在局域网内的某台主机用ping命令...
网络基础
Java工程师
测试工程师
哔哩哔哩
2019
计算机网络
评论
(8)
来自
哔哩哔哩2019秋招技术...
【模板】二维费用背包
动态规划
小红书
评论
(2)
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题