【问题标题】:What is the difference between the different BerkeleyDB versions, and which should I choose?不同的 BerkeleyDB 版本有什么区别,我应该选择哪个?
【发布时间】:2026-02-12 16:05:02
【问题描述】:

很多事情都依赖于 BDB。当我去为我的服务器安装预打包的软件时,每个软件似乎都需要不同版本的 BerkeleyDB。但似乎当我编译它们时,我可以指定一个特定的 BDB 版本。 (涉及的软件包括 Postfix、OpenLDAP 和 Cyrus IMAP。)

我偶尔在 python 项目中使用 BDB,但我不知道不同版本对创建的数据库文件有什么影响。

我想知道所有不同 Berkeley DB 版本之间的区别。似乎很难找到有关不同版本以及任何 API 或文件格式差异、版本之间不兼容等的信息。

我知道至少存在以下版本:

  • 1.85(历史版本?)

  • 2.x

  • 3.x

  • 4.1

  • 4.2

  • 4.3

  • 4.4

  • 4.5

  • 4.6

  • 4.7

  • 4.8

  • 5.0

【问题讨论】:

    标签: database berkeley-db embedded-database


    【解决方案1】:

    通常,对于每个版本,您都可以在随版本下载的文档中找到更改日志。您还可以在构建、安装和升级指南here 中找到过去版本的历史记录以及升级说明。您还可以找到历史更改日志列表here

    正如您所发现的,不同的包链接在不同版本的 Berkeley DB 库中。通常,BDB 库名称包括版本号,以便多个版本可以同时在一个系统上共存。由于 Berkeley DB 被许多不同的软件包使用,因此在您的系统上拥有多个版本的 Berkeley DB 并不少见。

    主要版本/功能的快速总结:

    • 1.85:最后一个 UCB 版本 (1994)
    • 2.0:添加事务、恢复 (1997)
    • 3.0:添加队列 AM、POSIX 线程、子数据库 (1999)
    • 3.3:添加批量获取、二级索引、1 级隔离(脏读)
    • 4.0:添加复制 (2001)
    • 4.1:添加加密和校验和
    • 4.2:添加 Java 集合 API
    • 4.3:添加序列号,2 级隔离
    • 4.4:添加数据库压缩、内存数据库、点对点 HA
    • 4.5:添加 MVCC、Replication Mgr API
    • 4.6:为每个操作添加缓存优先级
    • 4.7:添加 Java DPL API,架构中立 HA
    • 4.8:添加了 C# API、C++ STL API、SMP 可扩展性改进、表分区、批量插入和删除、外键
    • 5.0:添加 SQL API、JDBC/ODBC、全文和 R-tree 搜索 (2010)

    临时版本增加了对其他平台以及其他功能和增强功能的支持。

    我希望这会有所帮助。

    问候,

    戴夫

    【讨论】:

    • 谢谢。我从 Oracle 那里得到了足够多的 404,我认为他们已经“隐藏”了 BDB 文档。
    • 我也倾向于将 BDB 视为简单的“键=值数据存储”。从上面的列表中可以看出,它是一个相当先进的数据库引擎。
    最近更新 更多