用 PlanetScale + Workers 部署 Postgres 与 MySQL 数据库
原文:Deploy Postgres and MySQL databases with PlanetScale + Workers Source: https://blog.cloudflare.com/deploy-planetscale-postgres-with-workers/
2026-04-16
去年九月 Cloudflare 宣布与 PlanetScale 合作,让 Cloudflare Workers 直接访问 Postgres 和 MySQL 数据库,以构建快速的全栈应用。
很快,我们就要把两家技术拉得更近:你将能直接从 Cloudflare dashboard 和 API 创建 PlanetScale Postgres 与 MySQL 数据库,并将费用计入你的 Cloudflare 账户。
你可以选择最适合 Worker 应用需求的数据存储,并作为 Cloudflare 自助或企业客户保留单一的计费体系。诸如我们 初创计划 中给予的 Cloudflare 信用额度或 Cloudflare 承诺消费,都可以用于 PlanetScale 数据库。
面向 Workers 的 Postgres 与 MySQL
像 Postgres 和 MySQL 这样的 SQL 关系型数据库是现代应用的基石。其中 Postgres 凭借丰富的工具生态(ORM、GUI 等)以及为 AI 驱动应用构建向量搜索的扩展(如 pgvector)在开发者中越来越受欢迎。对于绝大多数需要强大、灵活、可扩展数据库来支撑应用的开发者,Postgres 是默认选择。
你已经可以连接你的 PlanetScale 账户,并直接从 Cloudflare dashboard 为你的 Workers 创建 Postgres 数据库。从下个月开始,新的 Cloudflare 订阅将把新的 PlanetScale 数据库的费用直接计入你的 Cloudflare 账户(自助或企业用户)。
在 PlanetScale 账户连接后,如何通过 Cloudflare dashboard 创建 PlanetScale 数据库。Cloudflare 计费下个月上线。
借助内置集成,PlanetScale 数据库通过 Hyperdrive(我们的数据库连接服务)自动适配 Workers。Hyperdrive 服务管理数据库连接池和查询缓存,让数据库查询既快又可靠。你只需在 Worker 的 配置文件 中添加一个 binding:
// wrangler.jsonc file
{
"hyperdrive": [
{
"binding": "DATABASE",
"id": <AUTO_CREATED_ID>
}
]
}
然后用你选择的 Postgres 客户端通过 Worker 运行 SQL 查询:
import { Client } from "pg";
export default {
async fetch(request, env, ctx) {
const client = new Client({ connectionString: env.DATABASE.connectionString });
await client.connect();
const result = await client.query("SELECT * FROM pg_tables");
...
}
PlanetScale 开发者体验
之所以选择把 PlanetScale 提供给 Workers 社区,是因为它无与伦比的性能与可靠性。开发者可以从两种最流行的关系型数据库中选择 —— Postgres 或 Vitess MySQL。PlanetScale 与 Cloudflare 一样,把性能和可靠性视为开发者平台的关键特性。借助 query insights、改进 SQL 查询性能的 agent 驱动 工作流以及用于安全部署代码(包括数据库变更)的 branching 等特性,PlanetScale 数据库的开发者体验是一流的。
Cloudflare 用户可以获得完全相同的 PlanetScale 数据库开发者体验。你的 PlanetScale 数据库可以直接从 Cloudflare 部署,连接由 Hyperdrive 管理 —— Hyperdrive 已经能让你现有的区域数据库与全球 Workers 配合得很快。这意味着你能以标准 PlanetScale 价格 访问相同的 PlanetScale 数据库集群,所有功能一应俱全,包括 query insights 和详细的 用量与费用 拆分。
PlanetScale Postgres 上单节点起价为 $5/month。
Workers 放置
对于集中式数据库,Workers 可以通过 显式 placement hint 紧挨着主数据库运行以降低延迟。默认情况下,Workers 在最接近用户请求的位置执行,这在查询集中式数据库(尤其多次查询)时会增加网络延迟。你可以改为配置 Worker 在最接近你 PlanetScale 数据库的 Cloudflare 数据中心执行。未来,Cloudflare 可以根据你的 PlanetScale 数据库位置自动设置 placement hint,把网络延迟降到个位数毫秒。
{
"placement": {
"region": "aws:us-east-1"
}
}
即将推出
你今天就可以通过 Cloudflare dashboard 部署一个 PlanetScale Postgres 数据库,或把已有的 PlanetScale 数据库连接到 Workers。今天的所有费用仍由 PlanetScale 计费。
下月起,新的 PlanetScale 数据库可计费到你的 Cloudflare 账户。
我们正与 PlanetScale 合作伙伴一起构建更多内容,例如 Cloudflare API 集成,告诉我们你接下来想看到什么。