Neon Postgres 深度解析:2025 年更新为何改变 Serverless SQL
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. 存储平面组件
- Safekeepers – 高度冗余的服务,持久存储 Write‑Ahead Log (WAL) 流,确保事务完整性,并作为所有数据修改的主要写入入口。
- Pageservers – 管理磁盘上数据页的节点,从 WAL 流中获取并重建数据。Neon 使用 copy‑on‑write (CoW) 机制(类似 Git),支撑其分支和时间旅行功能。
- 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 已经可以在高流量应用中投入生产,前提是您遵循以下关键建议:
- 禁用 “scale to zero” 在您的主生产分支上,以确保计算始终处于激活状态。
- 设置合适的最小计算规模——Neon 建议的规模应足以将您的应用工作集全部放入内存。
- 使用连接池(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 工具
- CSV to SQL – 将数据导入数据库
- JSON to CSV – 导出查询结果
-
文章与演讲
- Serverless PostgreSQL 2025: The Truth About Supabase, Neon, and PlanetScale
- Vercel vs Netlify 2025: The Truth About Edge Computing Performance
- AWS re:Invent 2025 Deep Dive: The Truth About Lambda and S3
本文最初发布于 DataFormatHub,您获取数据格式和开发者工具洞见的首选资源。