万家杨柳青烟里:B+、B- 树的应用场景

本文介绍了B+、B-树在数据库中的应用场景,特别是作为索引提升查询效率的作用。B+树在InnoDB中用于存储索引,其叶节点存储键值并形成链表,便于顺序搜索。B-树则在MongoDB中常见,键值和数据存储在同一节点,减少磁盘IO。相比于红黑树和Hash表,B树更适合磁盘存储,支持区间查询,而Hash表适用于单条查询但不支持区间查询。
摘要由CSDN通过智能技术生成

1. 每一种数据结构都有它的使命

正如链表可以构成缓存容器实现数据的暂时存放,B+、B- 树更多的被用来作为数据库搜索引擎的索引提高读取效率,例如:MySQL 的 InnonDB 用 B+ 树结构做索引;MySQL 的 MyISAM 引擎以及 MongoDB 用 B- 树作为索引。

1.1 为什么在数据库中使用索引?

假设您需要在文件中存储数字列表,然后在该列表中搜索给定的数字。最简单的解决方案是将数据存储在数组中,并在出现新值时附加值。但是,如果需要检查数组中是否存在给定值,则需要一个接一个地搜索所有数组元素,并检查给定值是否存在。如果足够幸运,您可以在第一个元素中找到给定的值。在最坏的情况下,该值可以是数组中的最后一个元素。我们可以将这种最坏情况表示为 O(n) 的渐近符号。这意味着,如果您的数组大小最大为“n”,则需要进行“n”次搜索才能在数组中找到给定值。

那如果是您,您会如何改善?最简单的解决方案是对数组进行排序,然后使用二进制搜索来找到值。每当您将值插入数组时,它都应保持顺序。从数组中间选择一个值开始搜索。然后将所选值与搜索值进行比较。如果所选值大于搜索值,则忽略数组的左侧,并在右侧搜索值,反之亦然。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值