Mongo DB中B树是如何创建的

问题描述 投票:0回答:1

我在这里试图深入了解 B 树是如何创建的。

假设我使用一个数字作为索引变量。如何创建深度 =1 的树还是会像这样 - http://knol.google.com/k/-/-/pz98o7ulrif9/zvd1ua/difftree01.png

如果是这样,树的深度是多少,子节点的最大数量是多少。 对于复合键(比如 2 个索引变量),是否会有两棵树。或者它是一棵单棵树,第一级作为第一个键,第二级作为第二个键? 假设我将时间戳作为索引键。我可以把它做成一棵树,第一层是年,第二层是月,第三层是日。 mongoDB能自动解析出这些信息吗?

mongodb b-tree
1个回答
9
投票

深度=1的树将如何创建还是会像这样 - http://knol.google.com/k/-/-/pz98o7ulrif9/zvd1ua/difftree01.png

你的图片显示的是“二叉树”而不是“b树”,它们是不同的。

“B 树”的工作原理是创建给定大小的存储桶(相信 MongoDB 使用 4k)并对这些存储桶中的项目进行排序。

如果是这样,树的深度是多少,子节点的最大数量是多少

请查看有关 B 树的 Wikipedia 条目,它应该为您提供明确的答案。

对于复合键(比如2个索引变量),会有两棵树吗?

只有一棵树。然而,存储在树中的密钥基本上是两个项目“混合”在一起的 BSON 表示。

假设我将时间戳作为索引键。我可以把它做成一棵树,第一层是年,第二层是月,第三层是日。 mongoDB能自动解析出这些信息吗?

不,您无法控制索引结构。

No MongoDB 不支持对索引中的日期进行任何特殊解析。

如果对时间戳进行比较操作,则需要发送另一个时间戳。

© www.soinside.com 2019 - 2024. All rights reserved.