面试题------B树和B+树的区别,以及为什么使用B+树而不用B树以及最左匹配原则

面试题------B树和B+树的区别

B树特点:
1.节点排序(节点存储:地址信息+索引+表结构中除了索引外的其他信息)
2.一个节点可以存多个元素,元素也排序

B+树的特点:
1.拥有B树的特点
2.叶子节点之间有指针
3.非叶子节点上的元素在叶子节点上都冗余了,也就是叶子节点中存储了所有的元素,并且排好顺序。
4.(非节点存储:地址信息+索引、叶子节点存储:索引+表结构中除了索引外的其他信息)

在Mysql中一个innodb页就是一个B+树节点,一个innodb页默认16kb,所以一般情况下,一颗两层的B+树,可以存2000万行左右的数据

区别:
B树key和value都在节点上。并且叶子节点之间没有关系。
而B+树的非叶子节点没有存value。叶子节点之间有双向指针,有引用链路。

查找方式不同,因为B树的key和value都存在节点上,因此在查找过程中,可能不用查找的叶子节点就找到了对应的值。
而B+树需要查找到叶子节点,才能获取值

结论:由于B树每个节点都存储了一条记录的所有数据,因此每次IO开销大。以及B+树的叶子节点有指针,可以很好的支持全表扫描、范围查找。

最左匹配原则

之所以最左匹配原则生效的原因是:索引是按照a排序的,b、c是没有排序的。
(a,b,c)是在 a 、ab 、abc时会走联合索引
其实ac也会走,只不过ac时,只走的a单个的索引

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
昨日,11.19,最新整理了,第61-80题,现在公布上传。 另加上之前公布的第1-60 题,在此做一次汇总上传,以飨各位。 可以这么说,绝大部分的面试题,都是这100 道题系列的翻版, 此微软等公司数据结构+算法面试100 题系列,是极具代表性的经典面试题。 而,对你更重要的是,我自个还提供了答案下载,提供思路,呵。 所以,这份资料+答案,在网上是独一无二的。 ------------------------------------ 整理资源,下载地址: 答案系列: 1.[最新答案V0.3 版]微软等数据结构+算法面试100 题[第21-40 题答案] http://download.csdn.net/source/2832862 2.[答案V0.2 版]精选微软数据结构+算法面试100 题[前20 题]--修正 http://download.csdn.net/source/2813890 //此份答案是针对最初的V0.1 版本,进行的校正与修正。 3.[答案V0.1 版]精选微软数据结构+算法面试100 题[前25 题] http://download.csdn.net/source/2796735 题目系列: 4.[第一部分]精选微软等公司数据结构+算法经典面试100 题[1-40 题] http://download.csdn.net/source/2778852 5.[第1 题-60 题汇总]微软等数据结构+算法面试100 题 http://download.csdn.net/source/2826690 更多资源,下载地址: http://v_july_v.download.csdn.net/ 若你对以上任何题目或任何答案,有任何问题,欢迎联系我: My E-mail: zhoulei0907@yahoo.cn ------------- 作者声明: 本人July 对以上公布的所有任何题目或资源享有版权。转载以上公布的任何一题, 或上传百度文库资源,请注明出处,及作者我本人。 向你的厚道致敬。谢谢。 ---July、2010 年11 月20 日。 ------------------------------------------------------ 各位,若对以上100题任何一道,或对已上传的任何一题的答案, 有任何问题,请把你的思路、想法,回复到此帖子上, 微软等100题系列,永久维护地址(2010年11.26日): http://topic.csdn.net/u/20101126/10/b4f12a00-6280-492f-b785-cb6835a63dc9.html
MySQL B树是一种多路搜索树,用于在数据库中快速地索引和检索数据。它是一种平衡树,每个非叶子节点最多包含m个子节点,其中m为阶数。具体回答如下: MySQL B树的特点有以下几点: 1. 多路搜索树:B树的非叶子节点可以拥有多个子节点,这样可以大幅减少层数,提高搜索效率。 2. 平衡树:B树的每个节点从根节点到叶子节点的路径长度相等,这样可以保持树的平衡,避免出现极端情况导致搜索效率下降。 3. 顺序存储:B树的节点通过顺序存储在磁盘上,这样可以提高IO效率,减少磁盘读写次数。 4. 自平衡:插入或删除一个节点后,B树会通过旋转、分裂或合并等操作重新平衡,保持树的平衡性。 5. 提供快速的索引和检索:通过B树,可以快速地定位到所需数据的位置,减少了遍历的时间。 对于MySQL面试题中关于B树的问题,可能会有以下几种考察角度: 1. 数据库索引:B树在数据库中广泛应用于索引的实现,可以通过B树迅速地定位到所需数据的位置。 2. 插入和删除操作:B树的自平衡特性使得插入和删除操作的时间复杂度为O(logn),保证了高效的修改操作。 3. 阶数的选择:阶数m的选择会影响B树的节点个数和树的高度,进而影响查询效率和内存占用,需要根据实际应用场景进行合理选择。 4. B+树和B-树:MySQL中还存在B+树和B-树等变种,可以对其进行介绍和比较。 总结来说,MySQL B树是一种用于数据库索引的多路搜索平衡树,通过自平衡、顺序存储等特性,提供快速的索引和检索功能。理解B树的原理和应用场景对于数据库快速查询和修改操作非常重要。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值