pgrust:用 Rust 重写 Postgres,性能超越 Postgres 和 ClickHouse
你是否曾经被 Postgres 的性能瓶颈所困扰?是否羡慕 ClickHouse 在分析查询上的速度,却又无法放弃 Postgres 丰富的生态和 SQL 兼容性?pgrust 的出现,旨在彻底解决这个鱼与熊掌不可兼得的问题。它是一个用 Rust 重新实现的 Postgres,不仅 100% 通过了 Postgres 官方回归测试,还在 OLTP 和 OLAP 场景下实现了显著的性能提升。本文将带你全面了解这个潜力无限的数据库新星。
截至收录:
pgrust stars数:4513
pgrust forks数:168
pgrust项目目录截图

pgrust项目核心亮点
🌟 亮点一(极致性能):采用向量化、基于推送的 JIT 编译执行器,在 ClickBench 综合评分中比 ClickHouse 快 18.5%,比 PostgreSQL 快数百倍;sysbench-oltp 只读场景下吞吐量比 Postgres 18.3 高 30%。
🎯 亮点二(兼容性惊人):完整通过 Postgres 回归测试套件(46,066 个测试),与 Postgres 的 wire 协议和 SQL 方言完全兼容,这意味着现有 Postgres 客户端、工具和大多数 SQL 语句可以无缝迁移。
🔒 亮点三(可靠性设计):内置 OOM Killer,在内存不足时优先终止单个查询而非整个数据库;内置查询调度器,通过动态调整长查询优先级,防止单个重型查询拖垮数据库,显著提升稳定性。
🧩 亮点四(现代架构):采用线程模型替代进程模型,重构了并行查询的工作窃取机制;支持列式存储格式 pgrcolumnar,并采用流水线 fsync 优化高并发更新场景,性能提升 30-50 倍。
pgrust项目快速开始
只需几步,你就能在本地运行起 pgrust,最简单的方式是使用 Docker(无需手动编译):
- 安装(Docker 方式):
bash
docker run -d --name pgrust -e POSTGRES_PASSWORD=secret -p 5432:5432 malisper/pgrust:v0.2 - 连接数据库:
bash
# 使用 psql 连接到 pgrust
psql -h localhost -p 5432 -U postgres - 验证版本:
sql
SELECT version();
-- 输出示例:pgrust 0.2 (PostgreSQL 18.3 compatible)
如果你希望直接从源码构建,可以参考项目 README 中的 macOS/Linux 快速指南,或使用
cargo build --release --locked --bin postgres进行编译。
pgrust项目应用场景
场景一:高性能分析查询:企业可以使用 pgrust 替代传统 Postgres 集群,在保持 SQL 兼容性的同时,获得接近 ClickHouse 的分析性能,省去额外维护一套 OLAP 系统的成本。
场景二:高并发在线业务:借助线程级并发模型和工作窃取调度器,pgrust 能够在多核硬件上更好地利用资源,适合高并发、低延迟的 OLTP 应用,如电商、SaaS 平台等。
用户案例:目前,pgrust 虽然在生产环境尚处于早期验证阶段,但其技术方案已吸引了大量数据库内核开发者、Postgres 使用者及云厂商的关注,并在社区中引发了关于“用 Rust 重构数据库”的热烈讨论。
pgrust项目链接
更多详情请访问项目主页:https://github.com/malisper/pgrustmalisper / pgrust项目地址:https://github.com/malisper/pgrust
本文地址:https://www.tgoos.com/46303
