我在这里试图深入了解 B 树是如何创建的。
假设我使用一个数字作为索引变量。如何创建深度 =1 的树还是会像这样 - http://knol.google.com/k/-/-/pz98o7ulrif9/zvd1ua/difftree01.png
如果是这样,树的深度是多少,子节点的最大数量是多少。 对于复合键(比如 2 个索引变量),是否会有两棵树。或者它是一棵单棵树,第一级作为第一个键,第二级作为第二个键? 假设我将时间戳作为索引键。我可以把它做成一棵树,第一层是年,第二层是月,第三层是日。 mongoDB能自动解析出这些信息吗?
深度=1的树将如何创建还是会像这样 - http://knol.google.com/k/-/-/pz98o7ulrif9/zvd1ua/difftree01.png
你的图片显示的是“二叉树”而不是“b树”,它们是不同的。
“B 树”的工作原理是创建给定大小的存储桶(相信 MongoDB 使用 4k)并对这些存储桶中的项目进行排序。
如果是这样,树的深度是多少,子节点的最大数量是多少
请查看有关 B 树的 Wikipedia 条目,它应该为您提供明确的答案。
对于复合键(比如2个索引变量),会有两棵树吗?
只有一棵树。然而,存储在树中的密钥基本上是两个项目“混合”在一起的 BSON 表示。
假设我将时间戳作为索引键。我可以把它做成一棵树,第一层是年,第二层是月,第三层是日。 mongoDB能自动解析出这些信息吗?
不,您无法控制索引结构。
No MongoDB 不支持对索引中的日期进行任何特殊解析。
如果对时间戳进行比较操作,则需要发送另一个时间戳。