深度基准测试:pgrust 在 ClickBench 上离 ClickHouse 还有多远?

📅 2026/8/17 17:32:23
深度基准测试:pgrust 在 ClickBench 上离 ClickHouse 还有多远?
深度基准测试pgrust 在 ClickBench 上离 ClickHouse 还有多远【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrust用 Rust 重写 PostgreSQL 的开源项目 pgrust正在用一项项硬核数据刷新数据库圈的认知。在最新公开的基准测试结果中pgrust 不仅在事务负载上比原生 PostgreSQL 快 50%更在分析型负载上实现了约 300 倍的惊人提速而在 ClickBench 这一公认的 OLAP 基准测试中它距离业界标杆 ClickHouse 仅剩 2 倍的差距。这个Postgres rewritten in Rust的项目究竟凭什么做到这一点它离真正超越 ClickHouse 还有多远本文带你一探究竟。pgrust 是什么用 Rust 重写 PostgreSQL 的野心pgrust 是一个目标直指 PostgreSQL 18.3 完全兼容的 Rust 重写项目。它不仅仅是一个翻译作品——项目保留了 Postgres 的行为形态以官方回归测试作为校验基准目前已经通过了超过 46,000 条回归查询的验证并且新版本已 100% 通过 Postgres 官方回归测试套件。更关键的是pgrust 做到了与 Postgres 的磁盘级兼容它可以直接从一个现有的 PostgreSQL 18.3 数据目录启动。这意味着现有数据、配置、甚至备份恢复流程理论上都能平滑迁移。ClickBench 是什么衡量分析型数据库的标尺在讨论 pgrust 的表现之前有必要先认识 ClickBench。这是 ClickHouse 团队发起的一个业界公认的分析型数据库基准测试包含 43 个覆盖真实业务场景的 SQL 查询数据集来自真实网站流量日志。它被广泛应用于衡量数据库在列存分析、聚合计算、过滤扫描等场景下的真实性能是判断一个数据库分析能力的重要参考。在 ClickBench 上pgrust 当前的速度约为 ClickHouse 的 1/2——也就是慢 2 倍。考虑到 pgrust 本质是一个行存数据库继承自 PostgreSQL 的存储模型而 ClickHouse 是专为分析而生的列存引擎这个成绩已经相当惊人。300 倍加速从何而来pgrust 性能领先的关键技术pgrust 在分析型负载上比 Postgres 快约 300 倍主要得益于两大架构变革1. 线程模型替代进程模型传统 PostgreSQL 采用一连接一进程process per connection架构进程间通信、内存隔离都带来不小开销。pgrust 的新版本改为一连接一线程thread per connection模型大幅降低了并发连接的管理成本这也是事务负载提速 50% 的重要原因。2. Rust 语言带来的底层优化空间Rust 的内存安全、零成本抽象、无 GC 暂停等特性让 pgrust 在热路径hot path上拥有更大的优化空间。项目结构中的执行器、优化器等核心模块都以 Rust crate 形式组织例如 crates/backend/executor/ 对应查询执行层crates/backend/optimizer/ 对应查询优化层crates/backend/storage/ 对应存储引擎层整个代码库的可读性和可修改性远超 C 语言版本。慢 2 倍的真实差距pgrust 当前短板在哪里尽管进步神速但 pgrust 在 ClickBench 上仍落后 ClickHouse 约 2 倍。差距主要来自存储模型差异行存数据库在扫描海量列时需要读取大量无关数据ClickHouse 的列存格式天然适合分析型扫描。向量化执行ClickHouse 的向量化执行引擎对 SIMD 指令利用充分而 pgrust 的表达式执行仍以行式解释为主。压缩与 IO列存的压缩率远高于行存导致 ClickBench 这类 IO 密集型基准测试中磁盘读取量差异巨大。好消息是项目方明确表示认为可以比 ClickHouse 更快而 Rust 的底层控制能力正是实现这一目标的底气所在。如何亲手验证 pgrust 的基准测试表现如果你也想在自己的机器上跑一遍基准测试最快的方式是使用 Dockerdocker run -d --name pgrust -e POSTGRES_PASSWORDsecret malisper/pgrust:v0.1连接验证docker exec -it -e PGPASSWORDsecret pgrust psql -h 127.0.0.1 -U postgres也可以从源码构建仓库地址为 https://gitcode.com/GitHub_Trending/pg/pgrust 构建后在scripts/目录下还提供了run-regression、cargo-fast-check等脚本方便你复现回归测试结果。从基准测试到生产pgrust 还有多远的路要走需要清醒认识的是pgrust 目前尚未达到生产可用状态也还未做充分的性能优化。现有 PostgreSQL 扩展和 PL/Python、PL/Perl 等过程语言扩展尚不兼容。项目路线图中列出的方向包括多线程内部重构、内置连接池、更强的 JSON 负载支持、无 VACUUM 存储实验等。但从基准测试的角度看一个兼容 Postgres 全部回归测试、磁盘级兼容现有数据、且分析性能接近 ClickHouse 的 Rust 数据库已经足以让人充满期待。当 pgrust 补上向量化执行和列存实验这两块拼图ClickBench 上的 2 倍差距或许真的会被抹平甚至反超。结语基准测试之外的想象空间回到最初的问题——pgrust 离 ClickHouse 还有多远答案是在 ClickBench 上只差 2 倍而在架构想象力上它正在用 Rust 重新定义PostgreSQL 还能走多快。对于关注数据库技术演进、Rust 生态或 PostgreSQL 性能上限的开发者来说pgrust 无疑是当下最值得跟踪的项目之一。数据不会说谎下一次基准测试更新或许就是见证历史的时刻。【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrust创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考