DuckDB 引入异步 I/O,查询速度提升 3 倍

Asynchronous I/O in DuckDB: Work, Thread, Work

DuckDB 引入异步 I/O,查询速度提升 3 倍

从 v2.0 版本开始,DuckDB 将原生支持 Parquet 和 CSV 文件的异步读取。这一变革专门针对 EC2 和 S3 等远程存储场景,解决了同步 I/O 无法跑满网络带宽的瓶颈。通过引入独立的 ASYNC 线程池和读前策略,DuckDB 让数据获取与计算解码并行执行,避免线程空转等待。在 TPC-H 基准测试中,开启异步 I/O 后,查询耗时从 8.23 秒骤降至 2.84 秒,性能提升近 3 倍。这意味着在数据湖架构下,DuckDB 能更高效地榨干网络带宽,释放计算潜力。

无论数据库系统中的查询算子有多快,如果我们无法快速拉取数据,这一切都毫无意义。
  1. diarrhea

    用 512GB 内存去跑一个 22GB 的远程文件做基准测试,感觉有点奇怪,不过也许他们没法在不配备大量内存的情况下获得那么多核心?

  2. bburnett44

    我很好奇,如果用 Quack 来协调多个 DuckDB 实例中的工作线程以实现并行化,效果会怎样。

    Ducks all the way down!

  3. NorthSouthNorth

    对这种异步 I/O 架构的深入剖析,对于高性能数据处理来说简直是纯工程金矿。拆解得非常棒。

同日更多故事

2026-08-16