Python中有没有B树数据库或框架?

23 投票
6 回答
23611 浏览
提问于 2025-04-16 05:20

我听说B树数据库比哈希表要快,所以我想在我的项目中使用B树数据库。请问在Python中有没有现成的框架可以使用这种数据结构,还是我需要从头开始编写代码呢?

6 个回答

3

先编写你想要实现的功能,之后再进行优化,如果有必要的话。就这样。

编辑:

http://pypi.python.org/pypi/blist

这是一个可以替代Python内置列表的工具。

5

你真的应该看看 ZODB。

http://www.zodb.org/en/latest/

我很久以前写过一篇关于它的论文,不过是西班牙语的,你可以在这里下载

还有很多英文的信息可以查找。

33

选择B树而不是哈希表的唯一原因,无论是在内存中还是在数据库的块存储中,是为了支持除了相等以外的查询。B树允许你进行范围查询,并且性能很好。许多键值存储(比如Berkeley DB)并没有把这一点显露出来,因为它们仍然是通过哈希来处理键的,但这仍然让你可以快速而稳定地遍历整个数据集(即使有添加或删除操作,或者树需要重新平衡,迭代器依然有效)。

如果你不需要范围查询,也不需要并发迭代,那么你就不需要B树,使用哈希表就可以,它在任何规模下都会更快。

编辑:我发现上述说法确实是正确的;为此,blist这个包似乎是最完整的排序容器库实现。

撰写回答