尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
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),仅供参考
RELATED

相关推荐

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/10/2 12:45:23
lsp-status.nvim 生态与未来:项目路线图、社区贡献与最佳实践

lsp-status.nvim 生态与未来:项目路线图、社区贡献与最佳实践

lsp-status.nvim 生态与未来:项目路线图、社区贡献与最佳实践 【免费下载链接】lsp-status.nvim Utility functions for getting diagnostic status and progress messages from LSP servers, for use in the Neovim statusline 项目地址: https://gitcode.com/gh…

📅 2026/10/3 9:11:34
LazyVim中配置C/C++自动格式化:clang-format与conform.nvim实战指南

LazyVim中配置C/C++自动格式化:clang-format与conform.nvim实战指南

1. 项目概述:为什么要在LazyVim中配置C/C格式化? 如果你和我一样,常年和C/C代码打交道,那你肯定对代码格式的“战争”深有体会。大括号是换行还是不换行?缩进用4个空格还是2个?指针的 * 号是贴着类型还是…

📅 2026/10/8 16:24:22
MORE NEWS

更多资讯

📰

大模型性别偏见实测:十款模型公平性对比与复现方法

去年年底我突发奇想,用同一套题把市面上十款主流大模型轮番轰炸了一遍,想看看一个大模型到底是不是“越先进越公平”。结果很有意思:前十名里,公认最强的几款在性别偏见测试中并没有包揽前三,甚至有个最先进的模型在“…

📰

Hive JDBC连接实战:从HiveServer2原理到代码跑通

简介:一份关于使用Java JDBC连接Hive数据库并执行基础操作的示例工程,主要面向需要在大数据任务中通过Java API读写Hive的开发者,也适合正在学习Hive生态的入门者参考。资源以Maven工程形式组织,包含两个Java源文件、对应编译后的…

📰

YOLOv8自定义数据集训练实战:从数据准备到模型部署

1. 项目概述:YOLOv8自定义数据集训练全流程实战在目标检测领域,YOLOv8作为Ultralytics公司推出的最新版本,凭借其卓越的速度-精度平衡和开发者友好特性,已成为工业界和学术界的首选框架之一。不同于官方文档中标准化的演示流程&am…

📰

广电AI落地实战:从2018白皮书到智能媒资与审核部署

1. 一份2018年的白皮书,为什么现在翻出来读还不过时2018年那会儿,圈子里对“AI广电”的讨论大多还停留在概念层面。台里开会,领导说“我们要搞人工智能”,底下人面面相觑——搞什么?怎么搞?买谁的&#xff…

📰

人工智能的认知神经基础:从神经元到类脑计算的工程实践指南

1. 这份110页白皮书到底想解决什么问题第一次看到"人工智能的认知神经基础"这个说法,很多人会下意识觉得又是一份高高在上的学术综述。但如果你真的在AI一线做过模型调优、数据标注体系设计,或者带过跨学科团队,就会明白这个命题背…

📰

多智能体博弈中的对手建模框架解析与应用

1. 项目概述"论文内容提取:面向多智能体博弈对抗的对手建模框架"这个标题背后,隐藏着一个极具挑战性的AI研究领域。作为一名长期关注多智能体系统的研究者,我深知在博弈对抗场景中准确预测对手行为的重要性。罗俊仁教授团队提出的这…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬