pgrust vs PostgreSQL 基准测试:事务负载快 50% 的秘密
pgrust vs PostgreSQL 基准测试事务负载快 50% 的秘密【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrustpgrust 是一个用 Rust 重写 PostgreSQL 的开源数据库项目目标是与 PostgreSQL 18.3 完全兼容。在最新公布的基准测试中pgrust 在事务负载上比原生 PostgreSQL 快约 50%在分析型查询负载上甚至快约 300 倍这一结果引发了数据库社区的热议。本文带你揭开 pgrust 性能领先的四大秘密并教你如何亲手验证这些基准测试数据。pgrust 是什么为什么它值得关注pgrust 不是又一个套壳 PostgreSQL 的中间层而是把 PostgreSQL 的核心代码用 Rust 从头重写。项目目前已经✅ 通过超过46,000 条 PostgreSQL 回归测试输出与原生 PG 完全一致✅ 与 PostgreSQL磁盘级兼容可以直接挂载现有 PG 18.3 的数据目录启动✅ 支持标准psql客户端连接协议完全兼容换句话说它尽量做到行为还是 PostgreSQL 的样子但内部引擎换成了更现代的 Rust 实现。官方说明见 README.md。基准测试成绩单一组让人惊讶的数字根据项目官方公布的数据新版本的 pgrust 交出了这样的成绩单负载类型相对 PostgreSQL相对 ClickHouse事务型负载OLTP快约 50%—分析型负载OLAP快约 300 倍ClickBench 上慢约 2 倍尤其值得注意的是分析型负载的表现原生 PostgreSQL 在 ClickBench 这类分析基准上通常不是 ClickHouse 的对手而 pgrust 已经把差距从数量级缩小到了2 倍以内项目方甚至表示有信心最终超越 ClickHouse。秘密一从一连接一进程到一连接一线程传统 PostgreSQL 采用process-per-connection每连接一个进程模型每个客户端连接都会 fork 出一个独立进程。进程切换开销大、共享内存管理复杂、上下文切换成本高这是事务负载性能的天花板之一。pgrust 新版本改用thread-per-connection每连接一线程模型线程之间共享地址空间上下文切换成本大幅下降高并发短事务场景下的吞吐量自然水涨船高。这一架构改造的核心代码位于 crates/backend/postmaster/postmaster/其中明确注释了postmaster 采用 fork 而非线程的旧模型以及新的线程化改造思路。秘密二Rust 带来的零成本优势Rust 语言本身也是性能红利的重要来源无 GC 垃圾回收内存管理由所有权系统在编译期解决运行时没有任何停顿零成本抽象泛型、迭代器等高级特性编译后不产生额外开销更强的内联优化LLVM 后端可以把热点路径编译得比 C 更激进以事务提交为例pgrust 的 crates/backend/access/transam/transam_xact/ 中实现了完整的StartTransaction/CommitTransaction状态机表达式求值则在 crates/backend/executor/execExprInterp/ 中采用 Rust 的 match 分派替代 C 的宏展开。这些热点代码在 Rust 下可以更安全地做激进优化同时保持内存安全。秘密三AI 辅助编程 46,000 条回归测试兜底pgrust 的重写大量借助 AI 辅助编程而让 AI大胆改代码的底气正是 PostgreSQL 官方那套 46,000 条回归测试。项目把 PostgreSQL 18.3 的完整测试套件随仓库一起提供用 scripts/run-regression 即可一键运行全部回归测试保证每次重构后行为仍然与 PostgreSQL 完全一致。换句话说性能优化可以放手做行为一致性由测试兜底。这也是为什么 pgrust 敢在事务引擎、执行器上做深度改造而不用担心悄悄改坏语义。秘密四磁盘兼容迁移成本几乎为零pgrust 与 PostgreSQL 磁盘级兼容意味着如果你已经有一个 PostgreSQL 18.3 的数据目录可以直接让 pgrust 启动并读取它无需导出导入应用代码、SQL、索引全部原样可用。想快速体验项目提供了 Docker 镜像一行命令即可启动docker run -d --name pgrust -e POSTGRES_PASSWORDsecret malisper/pgrust:v0.1更详细的容器使用说明见 docker/README.md。如何亲手跑一次基准测试如果你想让数字更有说服力可以自己动手验证。先克隆仓库git clone https://gitcode.com/GitHub_Trending/pg/pgrust然后构建并运行回归测试cargo build --release --bin postgres PGRUST_BIN$PWD/target/release/postgres scripts/run-regression构建完成后用 pgrust 自己的--initdb初始化数据目录再用标准psql客户端连接之后跑你熟悉的pgbench或ClickBench即可对比吞吐量。注意首次运行需要按 README.md 安装libicu-dev、libssl-dev等依赖并设置RUST_MIN_STACK环境变量。局限与展望理性看待这份成绩单需要说明的是pgrust 目前尚未达到生产就绪官方也强调还没有做全面的性能优化。这意味着 50% 和 300 倍的数字可能只是起点。当前已知的限制包括部分 PostgreSQL 扩展如 PL/Python、PL/Perl尚不兼容还在持续完善多线程内部机制和内置连接池存储层实验如无 VACUUM 设计仍在路线图上总结pgrust 用 Rust 重写 PostgreSQL在事务负载上快 50%、分析负载上快约 300 倍的背后是线程模型取代进程模型、Rust 语言红利、AI 辅助重构加回归测试兜底、磁盘级兼容四重因素的叠加。无论你是数据库从业者、Rust 爱好者还是被 PostgreSQL 性能瓶颈困扰的开发者都值得持续关注这个项目的进展。【免费下载链接】pgrustPostgres rewritten in Rust, now faster than Postgres and Clickhouse项目地址: https://gitcode.com/GitHub_Trending/pg/pgrust创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

Simple SMS Messenger 数据层解密:Room 数据库实体设计与 8 次版本迁移演进

Simple SMS Messenger 数据层解密:Room 数据库实体设计与 8 次版本迁移演进

Simple SMS Messenger 数据层解密:Room 数据库实体设计与 8 次版本迁移演进 【免费下载链接】Simple-SMS-Messenger An easy and quick way of managing SMS and MMS messages without ads. 项目地址: https://gitcode.com/gh_mirrors/si/Simple-SMS-Messenger …

2026/8/16 20:00:10 阅读更多 →
Conan依赖管理:源码下载失败排查与解决方案全解析

Conan依赖管理:源码下载失败排查与解决方案全解析

1. 从一次典型的构建失败说起:Conan Source下载之痛 如果你正在使用Conan来管理C/C项目的依赖,那么对 conan install 这个命令一定不陌生。它负责根据你的 conanfile.txt 或 conanfile.py 配置文件,拉取、构建并安装所有声明的依赖项。…

2026/8/16 20:00:10 阅读更多 →
SwiftUIFlux实战项目:从零构建电影应用状态层的完整教程

SwiftUIFlux实战项目:从零构建电影应用状态层的完整教程

SwiftUIFlux实战项目:从零构建电影应用状态层的完整教程 【免费下载链接】SwiftUIFlux A very naive implementation of Redux using Combine BindableObject to serve as an example 项目地址: https://gitcode.com/gh_mirrors/sw/SwiftUIFlux SwiftUIFlux …

2026/8/16 20:00:10 阅读更多 →

最新新闻

nslookup命令使用说明

nslookup命令使用说明

个人建站,域名备案完成后,往往还要做域名解析服务,技术人员怎么能知道自己配置的DNS正确与否呢?NSLOOKUP查询域名信息的一个非常有用的命令,可以指定查询的类型,可以查到DNS记录的生存时间还可以指定使用哪…

2026/8/17 0:00:08 阅读更多 →
【原创唯一】基于SpringBoot+Vue的在线书店商城系统 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)

【原创唯一】基于SpringBoot+Vue的在线书店商城系统 课程设计/大作业/期末作业(源码+MySQL数据库+实验报告+PPT+远程部署)

摘要 电子商务与移动支付的普及,线上购书已成为高校师生及社会公众获取图书的重要方式。传统线下书店在图书检索、库存查询、订单跟踪等方面存在信息分散、效率较低等问题。本文设计并实现了一套基于 B/S 架构的网上书店系统,采用前后端分离模式&#xf…

2026/8/17 0:00:08 阅读更多 →
飞书局域网文件传输实战:3种方案实现高速点对点传输

飞书局域网文件传输实战:3种方案实现高速点对点传输

1. 项目概述:为什么要在局域网内用飞书传文件? 飞书作为一款主流的协同办公套件,其核心功能是围绕云端协作设计的。无论是文档、表格还是文件,通常的分享逻辑都是“上传到云端 -> 生成链接 -> 分享给同事”。这个流程在互联…

2026/8/17 0:00:08 阅读更多 →
LabVIEW异步调用实战:解决界面卡顿与并行处理难题

LabVIEW异步调用实战:解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必经之路如果你在LabVIEW里写过稍微复杂点的程序,尤其是涉及到界面响应、多任务并行或者硬件IO等待,大概率会遇到一个头疼的问题:程序“卡”住了。前面板点不动,进度条不更新…

2026/8/17 0:00:08 阅读更多 →
LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必修课? 如果你用LabVIEW做过稍微复杂点的项目,尤其是涉及界面响应、多任务并行或者硬件IO等待的场景,大概率遇到过这样的窘境:前面板点个按钮,整个程序就“卡死…

2026/8/17 0:00:08 阅读更多 →
错误分享:误将磁盘分区类型选成磁盘名称

错误分享:误将磁盘分区类型选成磁盘名称

1.先删除原有分区2.fdisk重新创建3.发现进程被占用4.使用kill关不掉进程,加 -9 强制关闭5.关闭后重新使用fdisk创建,tips:记得改完后要使用 w 保存

2026/8/16 23:59:08 阅读更多 →

日新闻

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

LabVIEW异步调用实战:从原理到生产者消费者模式,解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必修课? 如果你用LabVIEW做过稍微复杂点的项目,尤其是涉及界面响应、多任务并行或者硬件IO等待的场景,大概率遇到过这样的窘境:前面板点个按钮,整个程序就“卡死…

2026/8/17 0:00:08 阅读更多 →
LabVIEW异步调用实战:解决界面卡顿与并行处理难题

LabVIEW异步调用实战:解决界面卡顿与并行处理难题

1. 项目概述:为什么异步调用是LabVIEW进阶的必经之路如果你在LabVIEW里写过稍微复杂点的程序,尤其是涉及到界面响应、多任务并行或者硬件IO等待,大概率会遇到一个头疼的问题:程序“卡”住了。前面板点不动,进度条不更新…

2026/8/17 0:00:08 阅读更多 →
飞书局域网文件传输实战:3种方案实现高速点对点传输

飞书局域网文件传输实战:3种方案实现高速点对点传输

1. 项目概述:为什么要在局域网内用飞书传文件? 飞书作为一款主流的协同办公套件,其核心功能是围绕云端协作设计的。无论是文档、表格还是文件,通常的分享逻辑都是“上传到云端 -> 生成链接 -> 分享给同事”。这个流程在互联…

2026/8/17 0:00:08 阅读更多 →

周新闻

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

基于阿里云与通义千问(Qwen)构建AI应用:从模型调用到生产部署的完整实践指南

如果你是一名开发者,最近可能已经感受到了AI大模型正在从“玩具”变成“生产力工具”的强烈信号。从代码补全到智能Agent,从本地部署到云端API,我们正处在一个技术栈快速重构的节点。然而,面对层出不穷的模型、框架和工具&#xf…

2026/8/16 0:00:54 阅读更多 →
工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

工业通信系统底层逻辑:04 反射——高频能量撞墙之后会发生什么?

第四篇:反射——高频能量撞墙之后会发生什么? —— 你以为信号已经过去了,其实它正在回来打你 老Q的现场笔记 第五季,我们正式进入工业神经系统层。这里不再是单个设备的战斗,而是整个工厂“经脉”层面的秩序之战。从这一篇开始,你将第一次看清:看似简单的信号传播,背…

2026/8/16 0:00:55 阅读更多 →
【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

【文章复现】非线性值迭代自适应动态规划(ADP):离散时间非线性系统的策略迭代自适应动态规划算法研究附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和…

2026/8/16 0:03:55 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/16 6:00:23 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/16 6:00:24 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/16 6:00:27 阅读更多 →