技术比较
Cloudflare D1 vs Supabase:你的 SaaS 该选哪个数据库?
D1 是边缘 SQLite,Supabase 是托管 Postgres。这个选择本质上是延迟 vs 功能。
2026-07-01
Huifer · Indie Developer→ /about
我的数据库使用经验: - D1:用于 2 个边缘应用,延迟稳定在 10ms 以下 - Supabase:用于 3 个传统应用,功能更丰富但延迟更高 如果你需要 Postgres 特性(pgvector, RLS),Supabase 是唯一选择。但如果你的应用是读多写少且需要全球低延迟,D1 的边缘复制是杀手级特性。 下文,我会详细说明我的迁移经验。
TL;DR
- 部署在 Cloudflare Workers、想要 10 毫秒内的边缘读取,选 D1。
- 需要 Postgres 扩展(pgvector、pg_cron)、RLS 或原生实时订阅,选 Supabase。
| 维度 | Cloudflare D1 | Supabase |
|---|---|---|
| 引擎 | SQLite | PostgreSQL |
| 边缘延迟 | 10 毫秒内 | 30–200 毫秒 |
| RLS | 自己实现 | 原生 |
| 实时订阅 | 自己实现(WS + DO) | 原生 |
| 扩展 | 无 | pg_vector、pg_cron 等 |
| 定价(小规模) | 几乎免费 | 免费档,之后 $25+/月 |
| 认证 | 自己实现 | 内置 |
延迟
D1 把只读副本复制到 Cloudflare 边缘(300+ 节点)。全球读取都在 10 毫秒内。
Supabase 跑在单一区域。离得远的用户每个请求都要付延迟。
功能深度
Supabase 给你完整 Postgres——RLS、扩展、面向 AI 应用的 pgvector、原生实时订阅。
D1 是 SQLite——更精简、边缘更快,但 Supabase 白送的功能你得自己建。
成本
D1 免费档非常慷慨,按写定价也便宜。
Supabase 免费档也不错,但付费起步就是每月 25 美元。
TanStack Ship 的定位
TanStack Ship 默认使用 D1(边缘速度、近乎零成本),并带数据层抽象——需要 pgvector 或 Postgres 独有功能时可切换到 Supabase/Postgres。你不会被锁死在哪家:从 D1 起步,真出现 Postgres 需求再迁移。
常见问题
边缘场景谁更快?
D1——优势明显。
pgvector / RAG 选谁?
Supabase——pg_vector 是原生的。
实时订阅选谁?
Supabase——一等公民的实时引擎。
认证选谁?
Supabase——内置。D1 需要自带认证。
以后能把 D1 迁到 Postgres 吗?
能。SQLite 到 Postgres 的迁移路径很成熟。