DuckDB 2.0 的 quack 服务:十个写者共用一个文件,每查询不到两毫秒
来源:dev.to — 2026-11-11
📋 概述
从两个进程同时打开一个 DuckDB 文件就会报错,这是进程内数据库的老规矩:一个文件、一个写者。2.0 在 2026 年 10 月 21 日正式发布,带来 quack 扩展,把运行中的进程变成一个小型网络服务器,其他进程可以连上去。作者用 Python 客户端实测:十个并发客户端写入一千条记录没有出错,代价是每查询大约 1.7 毫秒额外开销,并且连接期间本地目录被冻结。
🔑 核心要点
- 一个文件一个写者,是 DuckDB 长久以来的硬约束,两个进程同开必报错。
- quack 扩展把进程变成服务端,客户端用连接语句把整个会话路由过去。
- 十个并发客户端写入一千条记录,没有出现任何错误。
- 代价是每查询约 1.7 毫秒开销,连接期间本地目录冻结。
💡 金句
“DuckDB is an in-process database: one file, one writer, full stop.”
译:DuckDB 是进程内数据库:一个文件,一个写者,到此为止。
👍 0
👎 0
← 返回 dev.to 首页