数据库界的换心手术:pgrust 如何用 Rust 重写 PostgreSQL 内核

发布时间:2026/10/7 6:23:54

数据库界的换心手术:pgrust 如何用 Rust 重写 PostgreSQL 内核 数据库界的换心手术pgrust 如何用 Rust 重写 PostgreSQL 内核【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrustpgrust 是一个用 Rust 重写 PostgreSQL 内核的开源数据库项目目标是与 Postgres 18.3 完全兼容目前已在超过 46000 条回归查询上与 Postgres 输出完全一致新版甚至宣称分析负载比 Postgres 快约 300 倍。这篇文章将带你快速了解 pgrust 是什么、为什么值得关注、性能到底有多强以及如何 30 秒上手体验这场数据库换心手术。pgrust 是什么为什么有人要把 Postgres 重写一遍PostgreSQL 是全世界最流行的开源关系型数据库之一但它也背着沉重的历史包袱超过百万行的 C 语言代码、古老的进程模型、复杂的锁与共享内存管理以及让 DBA 又爱又恨的 Vacuum 机制。想要从内部改变它难度堪比给飞行中的飞机换引擎。pgrust 的答案很直接用 Rust 重写整个内核。但它的重写不是推倒重来而是遵循三条原则行为保持 Postgres 形状不改变 SQL 语义和使用习惯迁移零成本把真实 Postgres 测试当作裁判以官方回归测试套件作为兼容性标尺借助 Rust AI 辅助编程探索更深层的服务端改造简单说外表还是 Postgres心脏已经换成了 Rust。pgrust 核心亮点不只是换了个语言那么肤浅 ✨亮点具体表现 兼容目标对齐 Postgres 18.3官方测试即为验收标准✅ 回归测试超过 46000 条回归查询输出与 Postgres 完全一致 磁盘兼容数据文件格式与 Postgres 一致可直接挂载现有 18.3 数据目录启动 线程模型新版用每连接一线程取代 Postgres 传统的每连接一进程⚡ 性能飞跃事务负载快 50%分析负载快约 300 倍详见下文其中最让人惊叹的是磁盘兼容这意味着你现有的 Postgres 数据目录理论上可以被 pgrust 直接接管启动不需要导出导入升级路径非常平滑。性能有多强真的能追上 Clickhouse根据项目最新公告尚未发布的新版 pgrust 交出了这样一份成绩单场景对比结果事务型负载TPC-C 类比 Postgres 快约50%分析型负载比 Postgres 快约300 倍ClickBench 基准测试比 Clickhouse 慢 2 倍作者认为有望反超分析负载 300 倍的提升主要来自新架构的收益线程模型避免了进程间昂贵的上下文切换内存管理更高效查询执行路径也更紧凑。虽然目前仍在未生产就绪阶段但方向已经非常明确——Rust 不仅能重写 Postgres还能让它更快。架构拆解pgrust 是怎么拆掉 Postgres 的如果你对实现感兴趣可以在仓库中按图索骥。整个项目是 Cargo 工作区核心代码全部位于crates/backend/下几乎一一对应 PostgreSQL 官方源码的目录划分crates/backend/storage/存储引擎包含buffer/缓冲池、smgr/存储管理、lmgr/锁管理等子模块crates/backend/executor/执行器例如nodeHashjoin/、nodeAgg/等各类执行节点crates/backend/optimizer/优化器path/、plan/、prep/、util/一应俱全crates/backend/parser/解析器gram_core/是语法核心crates/backend/tcop/顶层命令分发与事务控制crates/_support/pgrust/pg_ffi_fgram/与原生 Postgres 的 FFI 桥接层scripts/run-regression一键运行 Postgres 官方回归测试的脚本可以说Postgres 有的模块pgrust 一个都不少只是换成了更安全、更现代的 Rust 实现。30 秒上手用 Docker 体验 pgrust 想亲手感受换心效果最简单的方式是 Docker 一键运行仓库的Dockerfile与docker/README.md有完整说明docker run -d --name pgrust -e POSTGRES_PASSWORDsecret malisper/pgrust:v0.1等容器就绪后直接用psql连接你就能看到熟悉的 PostgreSQL 界面psql -h 127.0.0.1 -U postgres -c select version(), 1 1 as two是不是和平时用 Postgres 一模一样这正是 pgrust 追求的效果——对用户完全透明只是底层更强了。如果想从源码构建可以参考 README 中 macOS / Debian / Ubuntu 的依赖安装步骤以及cargo build --release --locked --bin postgres的构建流程。路线图下一步要做什么️项目在 README 中公开了清晰的演进路线多线程内核进一步挖掘线程模型潜力内置连接池省掉外部 PgBouncer更强的 JSON 负载支持直面现代应用场景快速分支与派生fork/branch工作流让数据库复制粘贴无 Vacuum 存储设计彻底告别 Vacuum 焦虑坏查询与 AI 生成 SQL 的运行时护栏减少计划突变的惊魂时刻这些方向直指 Postgres 用户多年来的痛点也只有在内核可改的前提下才可能实现。现状与局限理性看待这场手术 诚实地讲pgrust 目前尚未达到生产可用还未做过充分的性能优化现有 Postgres 扩展如 PL/Python、PL/Perl、PL/Tcl尚不能普遍兼容部分 contrib 模块已经移植更多兼容性在推进中所以它更适合想研究数据库内核的开发者、关注数据库前沿的架构师、以及愿意为下一代数据库投票的尝鲜者。项目采用 AGPL-3.0 协议开源所有代码都在仓库中欢迎翻阅源码或提交 Issue 反馈。结语给数据库换一颗 Rust 的心 pgrust 用事实回答了一个大胆的问题PostgreSQL 这样复杂的系统能不能用 Rust 重写答案是不仅能而且还能跑得更快。46000 回归测试的兼容性、磁盘级兼容的平滑迁移、以及分析负载 300 倍的性能提升让这场数据库换心手术既稳健又惊艳。虽然距离生产环境还有一段路但它已经为数据库世界的未来打开了一扇新的大门——也许下一代数据库就是用 Rust 写出来的 Postgres。【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrust创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/9/28 19:55:53

采埃孚张家港新厂:智能电动底盘本土化战略与产业变革

1. 项目背景与战略意图最近,汽车圈里有个不大不小的新闻,可能很多普通消费者没太注意,但对于我们这些搞汽车制造、供应链管理,或者关注产业投资的人来说,却是一个值得琢磨的信号:全球汽车零部件巨头采埃孚&…

2026/10/7 6:20:21

用hyperframe解析HTTP/2帧:底层协议调试与代理开发实战

上次调 HTTP/2 服务端的时候,抓了一堆底层原始帧,直接拿hyperframes一点一点把调试日志补齐了。这个库的准确包名是hyperframe,作用是纯 Python 实现 HTTP/2 帧的构建、序列化和解析。如果不是需要深入协议底层,很多朋友可能从没听…

2026/10/7 6:20:21

德卡D8读卡器开发实战:PC/SC驱动与APDU读写社保卡避坑指南

简介:德卡D8读卡器开发包是一套面向C开发者的射频卡读写器应用开发工具,专注德卡D8/T8系列设备,帮助开发者快速掌握RFID读写流程、API调用方式及项目集成方法。压缩包内共320个文件,约30.75MB,包含35个C头文件、19个cp…

2026/10/7 6:20:21

JSP人事管理系统源码解析:Java Web部署调试与避坑指南

简介:一款基于JSP的企业人事管理系统Java源码包,面向Java学习者、毕业设计学生及需要快速搭建人事管理模块的小型项目开发者,适用于毕业设计参考、个人技术研究和中小公司项目借鉴。资源共229个文件,以88个JSP页面、Java源码与cla…

2026/10/7 6:20:21

硬件工程师成长路径:从理论到实践,用项目驱动能力跃迁

硬件工程师这个行当,有个很有意思的现象:科班出身、成绩不错的人,刚进公司头一年往往会被现实教育得很惨;反而是一些在学校“不务正业”、整天泡实验室折腾板子的人,能很快上手干活。这不是个别现象,而是这…

2026/10/7 6:20:21

ASP.NET企业后台源码部署实战:从解压到跑通再到改造排错

简介:这是一份基于ASP.NET与C#语言开发的企业网站后台管理系统源码包,适合毕业设计选题、课程实训,以及希望系统学习Web后台开发的初中级开发者。压缩包共608个文件,容量6.71MB,主要包含aspx页面、cs后台逻辑、数据库文…

2026/10/7 6:15:21

AI Agent工程化落地:架构、选型与实战指南

做AI应用方向这几年,我有个挺深的感受:行业最热闹的时候,不是某个模型发布的那天,而是大量开发者开始讨论“怎么把它真正用起来”的那天。2026年9月22日这天的热搜关键词里,“AI Agent”和“AI应用开发”同时挂在头部&…

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/6 17:46:51

无源低通滤波器设计实战:从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/7 1:05:03

ESP32免重刷固件:浏览器直接修改NVS键值实现WiFi配置更新

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

2026/10/7 1:05:03

SAP HANA查询结果导出CSV:避开乱码、性能与权限的实用指南

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

2026/10/7 1:05:03

数字后端Placement阶段Density与Congestion控制实战

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

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

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

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