技术比较
Cloudflare D1 vs PlanetScale:边缘 SQLite vs 无服务 MySQL
D1 赢在延迟;PlanetScale 赢在超大规模和分支。小型 SaaS 几乎都应该选 D1。
2026-07-01
Huifer · Indie Developer→ /about
SQLite vs MySQL 的选择: - D1(SQLite):足够我 99% 的 SaaS 使用,且免费 - PlanetScale(MySQL):考虑过用于一个大规模项目 我最终选择 D1 的原因:我的应用(< 1B reads/月)不需要 PlanetScale 的扩展能力。但如果你的目标是 Shopify 级别,PlanetScale 的 Vitess 后端是唯一选择。 下文,我会帮你决定。
TL;DR
- 每月读取量在 10 亿以内、边缘部署,选 D1。
- 需要 MySQL 规模、数据库分支或企业级负载,选 PlanetScale。
| 维度 | Cloudflare D1 | PlanetScale |
|---|---|---|
| 引擎 | SQLite | MySQL(Vitess) |
| 边缘延迟 | 10 毫秒内 | 30–100 毫秒 |
| 规模上限 | 很高(边缘读取) | 实际上无上限 |
| 分支 | 基础 | 一等公民 |
| 成本(小规模) | 几乎免费 | $39+/月 |
| 外键 | 支持 | 不强制 |
规模画像
PlanetScale(Vitess 后端)在超大规模下久经验证——Shopify 量级,如果你能到那一步。
对大多数 SaaS 的前五年,D1 绰绰有余。
分支工作流
PlanetScale 的 schema 分支(类 Git)在团队协作中确实好用。
D1 有基础的环境隔离,但没有完整分支。
TanStack Ship 的定位
TanStack Ship 默认用 D1——对绝大多数 SaaS 产品,边缘 SQLite 绰绰有余且几乎免费。如果你超越了它,数据层抽象让你迁移到 PlanetScale 或 Postgres,无需重写产品。
常见问题
谁更便宜?
小规模下 D1 大幅领先。
团队 schema 工作流选谁?
PlanetScale——分支是一流的。
边缘部署选谁?
D1——与 Workers 打包在一起。
D1 支持外键吗?
支持。
PlanetScale 支持外键吗?
不强制——这是 MySQL/Vitess 的限制。