问题标签 [b-tree]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
3879 浏览

database - B+ 树节点大小

我正计划编写一个简单的键/值存储,其文件架构类似于 CouchDB,即仅附加的 b+树。

我已经阅读了在 B+trees 上可以找到的所有内容以及在 CouchDB 内部可以找到的所有内容,但是我没有时间研究源代码(使用非常不同的语言使其成为自己的权利)。

所以我有一个关于 B+tree 节点大小的问题,即:给定键长度是可变的,是保持节点相同的长度(以字节为单位)更好还是给它们相同数量的键更好/child-pointers,不管它们有多大?

我意识到在传统数据库中,B+tree 节点以字节为单位保持固定长度(例如 8K),因为数据文件中的空间是在固定大小的页面中管理的。但是在文档可以是任意长度并且更新的树节点被写入之后的仅附加文件方案中,具有固定大小的节点似乎没有优势。

0 投票
2 回答
921 浏览

python - 在 zodb 中索引我的对象有什么好的指南和/或建议吗?

我将编写一个用于 zodb 的通用对象类。一旦这些对象被持久化到 zodb 对象图中,它们就会将它们自己添加到 btree 索引中。

我以前从来没有真正使用过这些,但是有人有任何资源和/或建议吗?

凭借 zodb 在处理对象引用时的强大功能和良好的索引策略,我最终可以充分利用这两个数据库世界。

任何其他想法都非常受欢迎,谢谢!

0 投票
9 回答
49321 浏览

data-structures - AVL 树与 B 树

AVL 树与 B 树有何不同?

0 投票
2 回答
2412 浏览

binary-tree - 分页二叉树与 AVL 树和/或 B 树

分页二叉树与 AVL 树和/或 B 树有何不同?

0 投票
3 回答
857 浏览

data-structures - B树中的辅助键

假设有一个文件包含未排序的学生信息列表,其中包括学生 ID 号以及其他信息。

我想制作一个根据学生证号检索学生信息的程序。为了提高效率,我将学生 ID 存储在 B 树中。

因此,当我输入学生 ID 号时,它会搜索 B 树以查看其是否存在。它还做了一件事。如果它找到学生 ID 号,那么它还会返回该学生信息在文件中的位置。这是辅助键。该程序使用这些信息来定位学生的其余信息并将其打印到屏幕上。

这可以做到吗?这是b树的工作原理吗?

0 投票
2 回答
7194 浏览

c++ - 如何遍历 Btree?

我有一个 Btree,我试图弄清楚如何遍历它,以便键以升序显示。

我能想到的是,这可以通过递归函数来完成。

做它的伪代码是什么?

0 投票
1 回答
3317 浏览

traversal - Btree的预遍历

我试图弄清楚如何对 Btree 进行预遍历。我知道通常预购遍历是这样工作的:

令我困惑的是如何使用 Btree 进行这项工作,因为在每个节点中都有多个值和多个子指针。打印值时,节点中的所有值是否在下降到左孩子之前都被打印出来?

每个节点如下所示:

子 1 值 1 子 2 值 2 子 3 值 3 子 4

另外,为什么有人要对 Btree 进行前序遍历,因为中序遍历会以升序显示值?

0 投票
1 回答
591 浏览

b-tree - 帮助完成 Btree 作业

我需要对 Btree 进行前序遍历,除此之外,打印每个页面的以下信息(与节点相同):

  1. B树页码
  2. 每个 B-Tree 页面指针的值(例如,地址、字节偏移量、RRN)。

我的问题是: 1. 你如何计算字节偏移量?它从什么偏移?2. RRN不是和页码一样吗?

注意:Btree 不是二叉树。Btrees的每个节点可以有多个key,一个有n个key的节点有n+1个子指针。

0 投票
3 回答
2763 浏览

sql - 数据库和 B+Trees 索引

我在哪里可以找到有关哪些数据库是否使用 B+Trees 而不是 B-Trees 进行索引实现的信息?

Oracle 似乎正在使用 B+Trees。虽然他们没有在他们的文档中描述它,但他们的图形似乎表明 B+Trees 正在实际使用中。

0 投票
2 回答
1537 浏览

database - Berkeley DB java 版本,Java 中有任何 LGPL 或 BSD 替代品吗?

我正在处理一个由键值对组成的庞大数据集。查询始终以键空间上的范围查询的形式(键是数字),因此任何持久的 B-Tree 类结构都可以处理这种情况。我想使用 BDB-Java 版,但该产品是封闭源代码,我的公司不想购买 BDB-JE 许可证。我想知道,请您分享您对任何基于非 GPL java 的键值存储系统的经验。

谢谢