内容提要
作者自费在云上对PostgreSQL 18与19 Beta进行约800小时OLTP测试,涵盖pgbench和类TPCC负载。结果显示19版整体性能稳定并略有提升,执行时间约改善3%,其中INSERT快25-30%,SELECT略快,UPDATE基本持平。结论是无需担心19版OLTP能力,但云环境测试波动较大,建议用户自行验证。
延伸解读
测试背景与动机
由于PostgreSQL 19开发周期中代码变更量较大(文件变更+15%、插入+38%、删除+75%),作者担心OLTP性能受影响,因此自费在云上对v18和v19 Beta进行约800小时的对比测试。测试使用pgbench和类TPCC负载,覆盖多种硬件配置,旨在验证19版在核心OLTP场景下是否稳定。
性能结果解读
整体执行时间改善约3%,但不同操作差异明显:INSERT快25-30%,SELECT略快,UPDATE基本持平。SQL语句平均改善约7%,但运行时仅改善3%,差距可能源于pg_stat_statements未涵盖会话和事务管理开销。类TPCC负载比pgbench tpcb-like获得更多性能提升。
测试局限与注意事项
云环境基准测试存在较大波动,作者遇到异常值并需使用裸金属实例和不同提供商来减少噪声。测试仅覆盖两种负载,不能代表所有真实场景。建议用户根据自身业务模式自行验证,并关注Postgres性能农场等社区项目以获取更全面数据。
Q&A
PostgreSQL 19 Beta 3.5 的 OLTP 性能测试结果如何?
测试结果显示 PostgreSQL 19 的 OLTP 性能整体稳定并略有提升,执行时间约改善 3%。其中 INSERT 操作快 25-30%,SELECT 略快,UPDATE 基本持平。结论是无需担心 19 版的 OLTP 能力。
为什么作者要对 PostgreSQL 19 Beta 进行 OLTP 性能测试?
由于 PostgreSQL 19 发布前代码变更比往常更多(文件变更 +15%,插入 +38%,删除 +75%),且存在回退高峰,作者担心 OLTP 这一核心能力可能受影响,因此自费在云上进行测试以验证。
测试中使用了哪些硬件和软件配置?
硬件包括 4-96 vCPU 的多种 AWS EC2 实例(如 m7gd.xlarge、c5d.metal 等)和 Hetzner 服务器,内存 16-192 GB,存储为 SSD/NVMe。操作系统为 Ubuntu 26.04 和 Debian 13。Postgres 配置进行了最佳实践调整,如设置 shared_buffers、work_mem 等,并禁用了 autovacuum,使用 fillfactor 80%。
测试中具体运行了哪些 OLTP 工作负载?
测试使用了 pgbench 的多种模式:键读取(--select-only)、批量键读取(aid BETWEEN $random + 10k)、键更新(--skip-some-updates),以及作者优化的 TPCC 类测试。每个测试持续 1-10 分钟。
测试中遇到了哪些挑战或不确定性?
云环境测试存在较大波动(jitter),短时间运行难以显示差异,甚至出现异常值。作者不得不剔除一些离群值,并租用裸金属实例和引入其他提供商(Hetzner)来减少波动。建议用户自行验证。
PostgreSQL 19 在哪些操作上性能提升最明显?
INSERT 操作提升最明显,比 PostgreSQL 18 快约 25-30%。SELECT 操作(键读取和批量读取)也略有加快。UPDATE 操作基本持平或略慢。TPCC 类工作负载比 pgbench 的 tpcb-like 获得更多性能提升。