深挖 pgrust:一个比原版还快的 PostgreSQL Rust 重写项目

发布时间:2026/10/6 10:01:29

深挖 pgrust:一个比原版还快的 PostgreSQL Rust 重写项目 深挖 pgrust一个比原版还快的 PostgreSQL Rust 重写项目【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrustpgrust 是一个用 Rust 从零重写 PostgreSQL 的开源项目目标是与 PostgreSQL 18.3 完全兼容目前已在超过 46,000 条回归查询上与官方输出完全一致。更惊人的是其新一代实现采用每连接一线程模型事务型负载比 PostgreSQL 快约 50%分析型负载快约 300 倍。本文将带你快速了解 pgrust 的性能亮点、兼容性现状以及最简单的上手方式。pgrust 是什么为什么有人要用 Rust 重写 PostgreSQLPostgreSQL 拥有四十多年沉淀的强大内核但其 C 语言代码库庞大、难以从内部改造。pgrust 的思路很直接保持 PostgreSQL 的行为与磁盘格式不变用 Rust 重写内核再用 AI 辅助编程加速改造进程。 磁盘完全兼容可以直接从一个已有的 PostgreSQL 18.3 数据目录启动✅ 官方测试作为标准答案以真实 Postgres 回归测试为 oracle逐项对齐输出 面向未来Rust 的内存安全特性 多线程模型让从内部改变 Postgres成为可能项目的定位与理念可以看仓库根目录的 README.md。pgrust 到底有多快一组让人意外的性能数据根据项目披露的最新进展尚未发布的新版 pgrust 在性能上交出了非常亮眼的成绩单负载类型相对 PostgreSQL说明事务型负载transaction workloads快约 50%得益于每连接一线程模型替代每连接一进程分析型负载analytical workloads快约 300 倍ClickBench 基准上约为 ClickHouse 的 1/2 速度团队认为 pgrust 在分析型负载上还有潜力进一步超越 ClickHouse。这意味着它不仅在兼容性上追赶 Postgres更在速度上试图反超两个方向的标杆。与 PostgreSQL 的兼容性46,000 回归查询全数通过pgrust 的兼容性验证方式非常硬核直接跑 PostgreSQL 官方回归测试套件。 已对齐46,000 条回归查询的期望输出 目标版本为PostgreSQL 18.3 测试脚本见 scripts/run-regression只需克隆仓库 Rust 工具链 一个 psql 客户端即可运行注意pgrust 目前尚未达到生产就绪状态性能也仍在持续优化中PL/Python、PL/Perl、PL/Tcl 等过程语言扩展尚未完全兼容不过部分内置 contrib 模块已经移植完成。如何在本地快速体验 pgrust方式一Docker 一键启动最简单项目提供了与官方postgres镜像形态一致的容器见 docker/README.mddocker run -d --name pgrust -e POSTGRES_PASSWORDsecret malisper/pgrust:v0.1启动后使用镜像内置的psql客户端连接即可数据目录会由 pgrust 自己的--initdb驱动完成初始化。方式二从源码编译运行Debian/Ubuntu 环境下先安装依赖sudo apt-get install -y build-essential pkg-config libicu-dev libssl-dev \ libldap2-dev libpam0g-dev postgresql-client-18克隆仓库并构建git clone https://gitcode.com/GitHub_Trending/pg/pgrust cd pgrust PGRUST_PGSHAREDIR$PWD/vendor/postgres-18.3/share \ cargo build --release --locked --bin postgres初始化数据目录并启动target/release/postgres --initdb -D /tmp/pgrust-data \ -L $PWD/vendor/postgres-18.3/share --no-locale --encoding UTF8 -U postgres ulimit -s 65520 RUST_MIN_STACK33554432 target/release/postgres -D /tmp/pgrust-data -F \ -c listen_addresses -k /tmp -p 5432 -c io_methodsync -c max_stack_depth60000最后连接验证psql -h /tmp -p 5432 -U postgres -d postgres -c select version(), 1 1 as twopgrust 的架构亮点线程模型与 seam 机制pgrust 之所以能更快关键在架构层面的大胆改造每连接一线程原版 Postgres 采用每连接一进程模型进程开销大pgrust 改为线程模型事务型负载因此提升约 50%多线程内核多线程化的 Postgres 内部实现是其核心路线图之一seam 机制通过seam-core这样的支持 crate 对内核关键路径进行可插拔的追踪与替换调试设施见 crates/_support/pgrust/trace/README.mdAI 辅助编程以 Rust AI 协作的方式加速把 C 内核翻译并重构为 Rust这一巨大工程整个工作区被拆分成数百个独立 crate见根目录 Cargo.toml覆盖解析器、优化器、执行器、存储、复制等 PostgreSQL 全链路模块。路线图pgrust 接下来要做什么根据项目公开的 Roadmappgrust 未来的重点方向包括 多线程 Postgres 内核 内置连接池 更强的 JSON 密集负载支持 存储层实验包括无 vacuum 设计️ 针对坏查询与 AI 生成 SQL 的运行时护栏⚡ 减少计划突变导致的性能抖动这些方向直指 PostgreSQL 运维中最常见的痛点也是 pgrust 从内部改变 Postgres这一目标的具体落地。结语值得关注的下一代 PostgreSQLpgrust 用 Rust 重写 PostgreSQL目前已在 46,000 回归查询上实现与官方完全一致的输出磁盘格式完全兼容新一代实现更是在事务与分析负载上双双超越原版 PostgreSQL。虽然它还处于早期阶段、尚未生产就绪但其兼容 更快 更好改的路线注定让它成为 2025–2026 年最值得跟踪的数据库基础设施项目之一。【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrust创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/5 6:03:04

Linux 网络接口命名规则

非常好的问题 👏——eth0、ens33、enp4s0、eno1 这些名字确实让人一开始很困惑,其实它们的区别来自于 Linux 的“可预测网络接口命名规则(Predictable Network Interface Names)” 的演进。下面我系统讲清楚它们的来源、命名逻辑和…

2026/10/6 9:58:52

斐讯R1改造AUX输入:百元电子垃圾变身高素质有线音箱

玩音箱的这两年,大家应该都见过一个奇观:一台当年上市卖两千多的智能音箱,如今在二手平台几十块、一百来块就能抱回家。这就是斐讯R1。它当年是旗舰定位,堆料很足,可惜品牌后来的运营出问题,云端服务陆续停摆,智能功能基本残废,价格一路崩盘,成了很多人眼里的“电子垃圾”。但垃…

2026/10/6 9:58:52

卡尔曼滤波入门指南:五个核心公式与调参实战

第一次接触卡尔曼滤波,是在一个室内定位项目里:手里只有一坨抖得不成样子的蓝牙RSSI测距值,却想画出一条平滑移动轨迹。用移动平均,延迟大到不可用;完全相信传感器,坐标就在原地漂移。后来把卡尔曼滤波跑起…

2026/10/6 9:58:52

Agent-Reach:为多Agent协作打造可靠的通信触达层

Agent-Reach 不是又一个聊天机器人框架,也不是拿来即用的 Prompt 调优工具。做完这个项目之后我最大的感受是,Agent 能不能真正“办事”,卡点往往不在推理,而在触达。你在本地跑一个单 Agent 玩 ReAct 循环,跑几百轮都…

2026/10/6 9:58:52

二叉树遍历全攻略:递归、迭代、层序模板与踩坑指南

刚开始刷二叉树的时候,我一度以为自己永远记不住这三道题的代码。LeetCode 144、145、94,前序遍历、后序遍历、中序遍历,递归版本三分钟写完,迭代版本一写就卡壳,尤其是中序和后续,每次对着空栈发呆&#x…

2026/10/6 9:53:51

NTC热敏电阻完全指南:从原理、选型到电路设计实战

1. 从一颗小圆片说起:NTC电阻到底是什么做电子这行,只要你碰过电源、碰过温控、碰过电池保护板,基本绕不开一个黑褐色的小圆片,有的带两根引线,有的就是贴片封装,长得跟普通MLCC电容差不多。它就是NTC热敏电…

2026/10/5 6:32:56

Jev+Agent接管浏览器:browser-use实战与jev-ultrafast性能优化

1. 从“Jev”说起:为什么我要把Agent接进浏览器“Jev”这个词最近在圈子里出现的频率越来越高,很多人第一次听到会以为是某个新模型的名字,其实它更像是一种思路——把Jev模型的能力当作底座,通过Agent的方式去接管浏览器&#xf…

2026/10/6 4:01:51

多智能体集群实战:DeepAgents编排、MCP与A2A协议及Skills体系

1. 从"单兵作战"到"集群协同":多智能体编排到底在解决什么问题如果你最近在折腾 Agent 相关的东西,大概率会有一种感觉:单个 Agent 能做的事情,其实很快就摸到天花板了。你给它一个提示词,挂几个工…

2026/10/5 17:38:27

无源低通滤波器设计实战:从RC到LC,手把手教你避开那些坑

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/6 0:03:23

MR25H40CDF+STM32F031C6工业级高可靠数据存储方案

1. 项目概述:为什么在工业现场非得用 MR25H40CDF 配 STM32F031C6 做数据存储?在工厂产线的 PLC 控制柜里、在风电变流器的散热片背面、在矿井监测终端的金属外壳下,你经常能看到一块指甲盖大小的黑色芯片——它既不是 Flash,也不是…

2026/10/6 0:03:23

MRAM+STM32工业断电数据保全实战指南

1. 项目概述:为什么在工业现场非得用 MR25H40CDF 配 STM32F031C6 做数据存储?在工厂产线的PLC柜里、在野外无人值守的环境监测终端里、在高速运转的包装机控制板上,你经常能看到一块指甲盖大小的黑色芯片,旁边贴着“MR25H40CDF”丝…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑