广告
返回顶部
首页 > 资讯 > 数据库 >树结构中MongoDb使用的到底是 B 树还是B+树
  • 681
分享到

树结构中MongoDb使用的到底是 B 树还是B+树

2024-04-02 19:04:59 681人浏览 泡泡鱼
摘要

这篇文章给大家介绍树结构中mongoDB使用的到底是 B 树还是B+树,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。关于 B 树与 B+ 树,网上有一个比较经典的问题:为什么 MonG

这篇文章给大家介绍树结构中mongoDB使用的到底是 B 树还是B+树,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

关于 B 树与 B+ 树,网上有一个比较经典的问题:为什么 MonGoDb 使用 B 树,而 Mysql 索引使用 B+ 树?

但实际上 MongoDb 真的用的是 B 树吗?

通过查阅资料,我从 MongoDb 的官网和 WiredTiger 官网找到了答案。MongoDb 官网关于存储引擎(Storage  Engine)的描述写道:从 MongoDb 3.2 版本开始,其使用了 WiredTiger 作为其默认的存储引擎。

树结构中MongoDb使用的到底是 B 树还是B+树

文档地址:WiredTiger Storage Engine — MongoDB Manual

而从 WiredTiger 官网文档,我们可以知道:WiredTiger 使用的是 B+ 树作为其存储结构。

树结构中MongoDb使用的到底是 B 树还是B+树

文档地址:WiredTiger: Tuning page size and compression

那为什么会出现很多资料说 MongoDb 使用 B 树作为存储的数据结构呢?我想可能有两个原因:一个原因可能是 B+ Tree 本身是 B  树的一种优化,所以很多人就直接把 B+ 树说成 B 树了。另一个原因可能是 MongoDb 3.2 之前,确实使用 B 树作为存储的数据结构。

对于这两个原因,我没有深入去探寻,有答案的朋友可以留言讨论一下。但我知道,无论是什么原因,都不影响我们对这个问题的讨论。表面上,我们是在讨论  MongoDb 与 mysql 存储的数据结构,但实际上我们是在讨论 B 树和 B+ 树这两种数据结构的特点。

因此,无论 MongoDb 使用的是 B 树,还是 B+ 树。只要我们弄清楚 B 树与 B+  树之间的区别,我们就可以在合适的时候,选择合适的数据结构。

B 树与 B+ 树,其比较大的特点是:B 树对于特定记录的查询,其时间复杂度更低。而 B+ 树对于范围查询则更加方便,另外 B+ 树相对于 B  树来说更加扁平。

对于 MongoDb 来说,其是非关系型数据库,较少做联表的范围查询。如果这确实是 MongoDb 非常典型的使用场景,使用 B  树其实可以加快其查询速度。

但实际上 MongoDb 3.2 之后,其使用了 B+ 树作为其数据结构。B+ 树其在范围查询方面更有优势,那有可能是 B+  树更加扁平,可以让其更加快速地找到数据,加快其查找速度。也有可能是 MongoDb 的范围查询特性使用更加广泛了。

说到这里,你可能有点迷糊,那实际情况到底是什么呢?

其实我自己并没有找到答案。我的思考也是到此为止,我也并没有找到更好的答案。与其腹死胎中,还不如写下来与大家讨论。或许不久之后我就忽然大悟,明白这其中的道理,到时候再来给大家分享。

写到这里,脑袋里蹦出另外一个问题:那为啥 MongoDb 要使用 B+ 树 ?而不使用平衡二叉树?嗯,答案其实很简单——是因为需要使用 B  树能加载大数据量的特性,否则其实现不了这么大量数据的查询和排序

关于树结构中MongoDb使用的到底是 B 树还是B+树就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

您可能感兴趣的文档:

--结束END--

本文标题: 树结构中MongoDb使用的到底是 B 树还是B+树

本文链接: https://www.lsjlt.com/news/61352.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 树结构中MongoDb使用的到底是 B 树还是B+树
    这篇文章给大家介绍树结构中MongoDb使用的到底是 B 树还是B+树,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。关于 B 树与 B+ 树,网上有一个比较经典的问题:为什么 Mong...
    99+
    2022-10-18
  • MongoDB中使用 B树的原因是什么
    本篇文章给大家分享的是有关 MongoDB中使用 B树的原因是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。MongoDB 是一个通用的、...
    99+
    2022-10-18
  • MySQL底层数据结构选用B+树的原因
           我们都知道MySQL底层数据结构是选用的B+树,那为什么不用红黑树,或者其他什么数据结构呢?         红黑树是一种自平衡二叉查找树,Java8中的hashmap...
    99+
    2022-11-12
  • Mongodb中使用B树索引的原因是什么
    这篇文章给大家介绍Mongodb中使用B树索引的原因是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。  B树和B+树  开头,我们先回忆一下,B树和B+树的结构以及特点。  树内的...
    99+
    2022-10-18
  • MongoDB 中索引选择B-树的原因是什么
    这期内容当中小编将会给大家带来有关MongoDB 中索引选择B-树的原因是什么,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、B-树和B+树的区别很明显,我们要想弄清楚...
    99+
    2022-10-18
  • MySQL使用B+树作为索引结构的原因
    这篇文章将为大家详细讲解有关MySQL使用B+树作为索引结构的原因,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、二叉查找树(BST):不平衡二叉查找树(BST,Bin...
    99+
    2022-10-18
  • mysql索引数据结构要用B+树的原因是什么
    这篇文章主要讲解了“mysql索引数据结构要用B+树的原因是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql索引数据结构要用B+树的原因是什么”吧!1. Hash表?No因考虑到...
    99+
    2023-06-30
  • MySQL中B+树索引的作用是什么
    本篇文章给大家分享的是有关MySQL中B+树索引的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。树的简介树的简介树跟数组、链表、堆栈...
    99+
    2022-10-18
  • B+树在数据库索引中的作用是什么
    本篇文章给大家分享的是有关B+树在数据库索引中的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。一、B-树和B+树回顾1.B-树B-tree(多路搜索树)是一种常见的数...
    99+
    2023-06-19
  • MySQL数据库索引选择使用B+树的原因是什么
    这篇文章主要介绍MySQL数据库索引选择使用B+树的原因是什么,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!一、二叉查找树(1)二叉树简介:二叉查找树也称为有序二叉查找树,满足二叉查...
    99+
    2022-10-18
  • MySQL中的常用树形结构设计是什么
    今天小编给大家分享一下MySQL中的常用树形结构设计是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。1. 递归表idpi...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作