使用 Neon 部署
Serverless Postgres,分支、缩到零和冷启动优化。
平台进阶
为什么
Neon 分离计算和存储,空闲缩到零(免费层)和即时分支预览。线兼容 Postgres,任何 Postgres 客户端可用。
平台即服务采用率 2024 年增长 24%,团队从虚拟机管理转向 git push 部署。the cloud infrastructure market reached $330B in 2024, growing 22% year-over-year (Synergy Research),PaaS 层捕获了大多数新工作负载。
何时使用
需分支的 serverless Postgres 用 Neon,尤其 Vercel/Cloudflare 应用。高吞吐常驻工作负载避免(用 Supabase/RDS)。
如何做
1. 创建 — console.neon.tech → 新建项目
2. 分支 — neon branches create preview(即时副本)
3. 连接 — 连接字符串,psql 或任何 Postgres 客户端
4. 扩缩 — 空闲自动挂起,查询恢复
5. 迁移 — 用 psql 或 drizzle/prisma migrate
6. 池 — 5432 端口连接池端点
7. SDK — @neondatabase/serverless 用于边缘
示例
import { neon } from "@neondatabase/serverless";
const sql = neon(process.env.DATABASE_URL!);
const users = await sql`SELECT * FROM users WHERE id = ${1}`;
# 预览分支
neon branches create preview --parent main
# 获取分支连接字符串
neon connection-string preview
# Drizzle 配置
// drizzle.config.ts
export default {
schema: "./schema.ts",
driver: "pg",
dbCredentials: { connectionString: process.env.DATABASE_URL! },
};
常见问题
- ⚠冷启动 300ms-2s — 空闲后首查询唤醒计算,用连接池
- ⚠分支未清理 — 预览分支累积,设清理 cron
- ⚠环境间配置漂移 — 使用基础设施即代码(Terraform/Pulumi)保持 dev/staging/prod 一致
最佳实践
- ✓边缘用 @neondatabase/serverless SDK — 基于 HTTP,无 TCP 连接开销
- ✓预览用分支 — 每 PR 即时 DB 副本,合并自动清理
- ✓设置健康检查和优雅关闭 — 处理 SIGTERM 以在退出前排空进行中的请求