写点什么

支持版本控制的 SQL 数据库 Dolt 发布 2.0 版,新增自动存储清理和压缩功能

作者: Renato Losio
  • 2026-07-27
    北京
  • 本文字数:1139 字

    阅读完需:约 4 分钟

DoltHub 近日发布了 Dolt 2.0,这是这款开源版本控制型 SQL 数据库的一次重大更新。这个最新发布的大版本新增了自动存储优化功能,包括垃圾回收和压缩,同时增强了对大型向量数据类型的支持。

Dolt 是一款与 MySQL 兼容的 SQL 数据库,内置了 Git 风格的版本控制功能,支持分支、合并、克隆和差异比较等操作。它将数据存储在基于内容寻址的 Prolly 树中,从而实现了行级版本控制、跨版本高效结构共享,以及快速的差异比较和合并操作。

继三年前发布首个大版本之后,2.0 版新增了默认启用的自动垃圾回收和归档压缩、自适应存储、处于测试阶段的向量支持,以及性能提升。开发团队声称,在 sysbench 测试中,该数据库的运行速度现在已经超过 MySQL。DoltHub 创始人兼首席执行官 Tim Sehn 解释了垃圾回收为何重要:

Dolt 会产生大量的磁盘垃圾,尤其是在导入过程中。由于 Dolt 采用写时复制(Copy-on-Write)机制,所以所有已提交事务的中间状态都会被保存到磁盘上。任何未包含在 Dolt 提交中的中间状态都是垃圾,可以被回收…… Dolt 本来就必须将所有历史记录保存在磁盘上的提交图中。额外产生的垃圾会迅速耗尽磁盘空间。

图片来源:Dolt 博客

该数据库新增了一种名为 archives 的磁盘存储格式,旨在通过字典压缩实现存储去重,从而将存储占用空间减少 30% 至 50% 。在谈到团队如何使用 sysbench 测量和测试不同版本 SQL 查询的延迟时,Sehn 表示:

起初,我们的读取速度比 MySQL 慢约 10 倍,写入速度慢约 20 倍。我们不断努力提升 Dolt 的性能,如今在写入方面比 MySQL 快 13%,在读取方面快 5%。

Dolt 2.0 还引入了对基于版本控制的向量索引的测试版支持。该功能基于 MariaDB 的 Vector 数据类型。根据公告,Dolt 是唯一支持向量版本控制的数据库,待剩余的读取路径缺陷修复后,该功能将正式发布。

Dolt 并非唯一一款用于数据版本控制的 Git 类工具,不同项目采取了不同的方法来对数据进行版本控制,同时避免重复存储大型数据集;流行的替代方案包括 LakeFS(一款面向数据湖的数据版本控制解决方案)和 Nessie(一款具有 Git 类语义的数据湖事务目录)。Dolt 已经正式发布并提供 MySQL 查询接口,其 Postgres 兼容版本 DoltgreSQL 采用了相同的存储引擎并实现了相同的版本控制接口,不过目前仍处于测试阶段。

Simon Späti 撰写了一系列文章,解释了什么是受 Git 启发的数据管理方法,并对比了现有的各种选项。Späti 写道:

Git 式工作流正逐渐成为基本要求。也许不是今天或明天,但借助合适的工具和工作流调整,我们可以实现明显更优的变更管理、基于生产数据的测试、快速回滚、隔离实验,以及最重要的是,在部署变更时能高枕无忧。

Dolt 已经在 GitHub 上发布,采用 Apache 2.0 许可。

原文链接:https://www.infoq.com/news/2026/07/dolt-version-control/