Neon Postgres 深度解析:2025 年更新为何改变 Serverless SQL

发布: (2025年12月27日 GMT+8 15:34)
11 分钟阅读
原文: Dev.to

Source: Dev.to

概述

在本指南中,您将了解 Neon(无服务器 PostgreSQL 平台)在 2025 年底取得的显著进展。我们将覆盖:

  • 架构进展
  • 性能基准
  • 面向开发者的新功能

这不是营销噱头——而是对这些改进如何重塑开发工作流和生产部署的实用观察。

1. 重新架构的 PostgreSQL

传统的 PostgreSQL 是一个将计算和存储紧密耦合在单一实例中的单体。虽然稳健,但这种设计限制了在现代云环境中的可扩展性、弹性和成本效率。

如需与其他现代提供商进行更深入的比较,请参阅我们的指南 “Serverless PostgreSQL 2025: The Truth About Supabase, Neon, and PlanetScale.”

1.1 核心创新:计算与存储分离

描述
计算层无状态的 PostgreSQL 实例,以临时方式运行(例如在 Kubernetes pod 或基于 QEMU 的 NeonVM 中)。它们处理查询,仅与存储层通信。
存储层用 Rust 编写的持久化多租户存储。它独立于任何计算节点保存数据。

无状态的计算层实现了快速扩容、即时供应,并且在空闲时能够将计算 缩减至零,从而带来显著的成本优势。

2. 存储平面组件

  1. Safekeepers – 高度冗余的服务,持久存储 Write‑Ahead Log (WAL) 流,确保事务完整性,并作为所有数据修改的主要写入入口。
  2. Pageservers – 管理磁盘上数据页的节点,从 WAL 流中获取并重建数据。Neon 使用 copy‑on‑write (CoW) 机制(类似 Git),支撑其分支和时间旅行功能。
  3. Cloud Object Storage – 不经常访问的数据会自动迁移到成本低廉的对象存储(例如 Amazon S3),为 Neon 提供“无限”存储容量。

3. 2025 年后期增强

功能新增内容
PostgreSQL 18 支持完全 GA 支持,包括全新的异步 I/O(AIO)引擎。
Data API性能和可用性显著提升。
Inbound logical replication已进入正式可用(GA)阶段——现在可以将数据 复制 到 Neon。
AI‑powered developer tools集成助手用于查询生成、模式建议和性能调优。
Observability更细粒度的指标(CPU、内存、WAL 延迟、连接池统计)。
CLI experience精简的 neonctl 命令和更好的交互提示。

4. 无服务器性能与冷启动

4.1 冷启动延迟

当计算节点在 5 分钟 无活动后缩减至零(默认),重新激活它可能会增加 ≈ 500 ms – 几秒 的延迟。因此,首次连接到空闲数据库时会出现短暂的延迟。

4.2 缓解措施 – PgBouncer

Neon 提供了集成的连接池(PgBouncer)。通过使用池化的连接字符串路由您的应用程序:

  • 保持热连接存活,掩盖大多数冷启动。
  • 初始唤醒后,后续查询通常运行迅速。

提示: 调整 PgBouncer 的池大小和超时设置,以匹配您的流量模式,获得最佳效果。

5. PostgreSQL 18 – 异步 I/O

PostgreSQL 18(于 2025年9月25日 发布)引入了 异步 I/O(AIO),这是一种从传统同步模型的根本性转变。早期基准测试显示:

  • 对于读取密集型工作负载,性能提升 2‑3×
  • I/O 延迟显著降低,尤其在存储延迟占主导的云环境中。

Neon 的存储层充分利用 AIO,提供更快的查询执行和更好的吞吐量。

6. 自动扩展与自动挂起

Neon 的无服务器扩展在两个维度上工作:

机制描述
自动挂起如果数据库端点在可配置的时间段内未收到 活跃连接,计算节点将自动挂起(缩减至零)。
自动扩展CPU 和内存会根据实时指标(CPU 利用率、内存压力)动态调整。您可以设置 最小最大 计算单元(CU)限制。一个 CU 约等于 4 GB RAM

Source:

7. 类 Git 数据库分支

Neon 的 分支 功能可以说是其杀手级应用。得益于 CoW 存储架构,创建分支是瞬时且存储高效的:

  • 新分支会创建一个 新的计算层,该层指向与其父分支相同的底层存储。
  • 仅在分支上所做的更改会以差异(diff)的形式存储,避免了完整的数据复制。

7.1 示例:创建分支

# Create a new branch named 'feature-x' from the 'main' branch
neonctl branches create feature-x \
    --project-id p-abcdef123456 \
    --parent main

现在你可以像连接其他 Neon 端点一样连接 feature-x,运行迁移、测试新功能,或进行数据驱动的实验,而不会影响 main

8. 结束语

Neon 在 2025 年末的更新巩固了其作为 领先的无服务器 PostgreSQL 提供商 的地位:

  • 架构分离 为您提供弹性和成本控制。
  • PostgreSQL 18 + AIO 带来现代化的性能提升。
  • 分支、AI 工具和更丰富的可观测性 让开发者能够更快迭代、更可靠地交付。

如果您还没有尝试,现在正是使用 Neon 原型化下一个项目并亲身体验这些创新的绝佳时机。祝开发愉快!

获取分支连接字符串

neonctl branches get feature-x \
  --project-id p-abcdef123456 \
  --json | jq -r '.endpoints[0].connection_uri'

由于 Neon 的存储系统通过 WAL 记录保留了数据的完整历史,它实际上充当了持续备份。您可以在保留窗口内的任意时间点恢复数据库,精确到毫秒或日志序列号(LSN)。这意味着不再会因误删 DROP TABLE 而导致数小时的宕机——您可以瞬间恢复到事故发生前的状态。

最近的数据 API 改进(2025 年底)

  • 数据 API 现已 使用 Rust 重建,提供更好的性能和多租户支持。
  • 它仍然是一个 REST API,允许您使用标准 HTTP 请求查询表——非常适合无服务器函数。
  • SQL 编辑器现在包含 AI 功能:
    • AI 生成的 SQL 语句
    • AI 生成的查询名称
    • 可修复查询的 AI 助手

生产就绪评估

Neon Postgres 已经可以在高流量应用中投入生产,前提是您遵循以下关键建议

  1. 禁用 “scale to zero” 在您的主生产分支上,以确保计算始终处于激活状态。
  2. 设置合适的最小计算规模——Neon 建议的规模应足以将您的应用工作集全部放入内存。
  3. 使用连接池(PgBouncer),不仅仅作为冷启动的缓解手段,而是作为处理数千并发连接的基础组件。

Source:

迁移路径

将现有数据库迁移到 Neon 通常并非轻而易举,但 Neon 提供了多种迁移方式:

1. 入站逻辑复制

  • 完全受支持。
  • 将数据从外部 PostgreSQL 实例(例如 AWS RDS)复制到 Neon。
  • 建立发布‑订阅关系,然后在目标库追上进度后切换,停机时间最小。

2. 导入数据助手(控制台)

  • 适用于较小的数据库或初步测试。
  • 提供现有 PostgreSQL 数据库的连接字符串。
  • 助手会执行兼容性检查、创建新分支并导入数据——无需手动 pg_dump

3. 传统 pg_dump / pg_restore(完整一次性迁移)

# 从 RDS 导出
pg_dump -Fc -v \
  --host=your-rds-endpoint.rds.amazonaws.com \
  --port=5432 \
  --username=your_rds_user \
  --dbname=your_db_name \
  -f your_db_dump.sql

# 导入到 Neon
pg_restore -v --no-owner \
  --host=your-neon-host.neon.tech \
  --port=5432 \
  --username=your_neon_user \
  --dbname=your_neon_db \
  --clean your_db_dump.sql

4. 双生工作流(仅用于开发)

  • 使用 GitHub Actions(或其他 CI 系统)定期 pg_dump 你的生产 RDS 数据库,并将其 pg_restore 到专用的 Neon 开发分支。
  • 让团队能够在几乎真实的数据上进行测试,而无需将生产工作负载提交到 Neon。

Neon 路线图亮点

  • PostgreSQL 18(主要关注)

    • Virtual Generated Columns:在不额外存储的情况下即时计算列值。
    • Enhanced RETURNING Clause:在单个语句中同时访问旧行和新行的值。
    • UUIDv7 Support:时间顺序的 UUID,提升索引性能。
    • OAuth 2.0 Authentication:原生集成现代身份提供商。
  • Multi‑Cloud Expansion

    • GCP 支持计划于 2025 年底推出。
  • Compute Enhancements

    • 最大 128 CUs
  • Observability

    • 更深入的 OpenTelemetry 集成,实现细粒度的追踪和指标。

相关资源

本文最初发布于 DataFormatHub,您获取数据格式和开发者工具洞见的首选资源。

Back to Blog

相关文章

阅读更多 »