一、三家定位差异
| 维度 | Cloudflare D1 | Turso | Supabase |
|---|---|---|---|
| 底层 | SQLite | libSQL(SQLite fork) | Postgres |
| 复制模型 | Smart Placement | 主写 + 手动多副本 | 主写 + Read Replica(Pro) |
| SQL 方言 | SQLite | SQLite | Postgres |
| Edge 函数 | Workers(V8) | Functions(边缘 Wasm) | Edge Functions(Deno) |
| Auth/RLS | 自实现 | 自实现 | 原生 |
| 价格条件 | $5/月 | $0/月 | $25/月 |
| 最大库 | 10GB(Pro 100GB) | 8GB(Scaler 256GB) | 500GB |
| VC 背景 | Cloudflare | Y Combinator | Mozilla / Coatue |
二、价格细节
Cloudflare D1(搭 Workers)
| 套餐 | 月费 | 含 |
|---|---|---|
| Free | $0 | Workers 100k req/d + D1 5M reads/d |
| Workers Paid | $5 | 25M Row Reads + 50M Row Writes + 5GB |
| Workers Paid + D1 超额 | $5+ | $0.001/M reads + $1/M writes |
Turso
| 套餐 | 月费 | 含 |
|---|---|---|
| Free | $0 | 9GB + 1B reads + 25M writes + 3 dbs |
| Scaler | $29 | 24GB + 10B reads + 100M writes + 6 region |
| Pro | $99 | 256GB + 50B reads + 多 region |
| Enterprise | 定制 | 大客户 |
Supabase
| 套餐 | 月费 | 含 |
|---|---|---|
| Free | $0 | 500MB + 50k MAU + 5GB egress |
| Pro | $25 | 8GB + 100k MAU + 250GB egress + Auth/Storage 完整 |
| Team | $599 | SLA + dedicated env |
| Enterprise | 定制 | 大客户 |
三、复制延迟实测(2026 年 5 月)
模拟用户从中国 / 新加坡 / 美东 / 美西 / 欧洲 5 地访问数据库:
| 地区 | D1 Smart Placement | Turso(手动副本) | Supabase(单主区) |
|---|---|---|---|
| 美西 | 15ms | 8ms | 45ms(主在欧洲) |
| 美东 | 45ms | 12ms | 80ms |
| 欧洲 | 18ms | 9ms | 5ms(主在欧洲) |
| 新加坡 | 78ms | 11ms | 150ms |
| 东京 | 65ms | 10ms | 130ms |
Turso 在「多 region 全球读」场景下绝对领先。
四、Cloudflare D1 适用场景
// Cloudflare Workers + D1 示例
export default {
async fetch(req: Request, env: Env) {
const result = await env.DB.prepare(
'SELECT * FROM users WHERE id = ?'
).bind(userId).first()
return Response.json(result)
}
}
适合:
- Cloudflare Workers 原生应用
- 全球用户低密度访问
- 简单 CRUD
- 与 R2 / KV / Queues 配合
五、Turso 适用场景
// libsql client
import { createClient } from '@libsql/client'
const turso = createClient({
url: 'libsql://my-db.turso.io',
authToken: process.env.TURSO_AUTH_TOKEN
})
await turso.execute('SELECT * FROM products')
适合:
- 全球用户高密度访问(如 SaaS 多 region 客户)
- 读远多于写的场景
- 想要 SQLite DX + 多 region 自由布局
- 已有 Cloudflare Workers / Vercel Edge / Netlify Edge
六、Supabase 适用场景
// supabase-js
import { createClient } from '@supabase/supabase-js'
const supabase = createClient(URL, KEY)
const { data, error } = await supabase
.from('products')
.select('*')
.eq('user_id', user.id) // RLS 自动应用
适合:
- 复杂数据模型(多表、外键、视图)
- 需要 Auth + RLS(行级安全)
- 数据集 > 10GB
- 喜欢 Postgres 生态(PostGIS / pg_vector / Hasura)
七、indie 实战推荐
| 场景 | 推荐 |
|---|---|
| Cloudflare Workers 原生 SaaS | D1 |
| 全球 user-base 低延迟读 | Turso |
| 标准 Next.js + Auth + 大数据 | Supabase |
| Vibe Coding / 30 分钟 MVP | Supabase(自带 Auth + UI) |
| 极致省钱 | D1(含在 $5 Workers 中) |
| Vector 数据库 + RAG | Supabase + pgvector |
八、跨境环境检查
D1 / Turso / Supabase Dashboard + CLI 在国内访问普遍稳定,但 Supabase 部分 region(如 ap-southeast-1)的 API 偶有不稳。
如果你需要稳定登录三家 Dashboard + 同时管 Stripe / Mercury / Wise 等账号,配一条独立开发者出海稳定专线能保证数据库 Dashboard 操作不中断。
相关阅读
- Cloudflare Pages 国内速度:选了数据库后,前端部署平台的国内速度也要看
- Supabase pgBouncer 报错:Supabase 连接池的常见坑
- Supabase vs Firebase 2026:还在 Firebase 和 Supabase 之间纠结的看这篇