10.1 上线前 Checklist
- ☐ Token 权限最小化:读写 token 只给应用用;管理 API token 只留 CI
- ☐ Token 过期策略:应用 token 建议 30 天轮换
- ☐ Secret 管理:
TURSO_AUTH_TOKEN放 Vercel/CF Secrets/AWS SSM,不要提交 .env - ☐ 副本覆盖:根据主要流量区域选 primary + 2-3 个副本
- ☐ 迁移流程:CI 里 migrate 在 deploy 之前
- ☐ 备份演练:至少一次完整恢复走通
- ☐ Alerts:磁盘用量、月度配额、P95 延迟接入告警
- ☐ BUSY 重试:客户端加指数退避(第 6 章)
- ☐ rate limit:应用侧保护,避免 DoS 撞 Turso 配额
- ☐ 日志脱敏:不要 console.log 整个 SQL(可能泄漏 PII)
10.2 配额与计费
Turso 按几个维度计费(2026 年价格):
| 维度 | Free | Starter ($29/月) | Scaler ($299) |
|---|---|---|---|
| 数据库数 | 500 | 无限 | 无限 |
| 存储 | 9 GB | 24 GB | 500 GB |
| 月度读行 | 1B | 10B | 100B |
| 月度写行 | 25M | 100M | 1B |
| 区域数 | 3 | 6 | 无限 |
| PITR | ❌ | 24h | 30d |
小 SaaS 通常 Free 够用。超出按超量单价——通常比自建 Postgres 便宜 5-10 倍。
10.3 监控指标
Turso 自带的 dashboard(免费账户也有):
- QPS(读/写分开)
- 延迟 P50/P95/P99(按区域)
- BUSY 率
- 副本延迟
- 存储大小趋势
- 月度配额使用率
接入 Prometheus / Grafana
Turso 提供 Metrics API,可以轮询写入 Prometheus pushgateway:
curl -H "Authorization: Bearer $API_TOKEN" \
https://api.turso.tech/v1/organizations/ORG/databases/DB/usage
10.4 成本估算小工具
// 粗估每月读写
const dailyActiveUsers = 10000;
const queriesPerUser = 50; // 平均每日
const rowsPerQuery = 5; // 平均返回行
const writesPerUser = 3;
const monthlyReads = dailyActiveUsers * queriesPerUser * rowsPerQuery * 30;
const monthlyWrites = dailyActiveUsers * writesPerUser * 30;
console.log({ monthlyReads, monthlyWrites });
// 对 10K DAU:reads ≈ 75M/月, writes ≈ 900K/月 → Free 层足够
10.5 与其他 Edge 数据库对比
| 维度 | Turso | Neon | Cloudflare D1 | PlanetScale | Supabase |
|---|---|---|---|---|---|
| 底层 | libSQL/SQLite | Postgres | SQLite | MySQL | Postgres |
| 嵌入式副本 | ✅ | ❌ | ❌ | ❌ | ❌ |
| 多区域副本 | ✅ 40+ | 单区域 | 就近只读 | ✅ | Fly 方案 |
| 向量 | ✅ 原生 | pgvector | Vectorize 分离 | ❌ | pgvector |
| branch | ✅ | ✅ 最强 | 部分 | ✅ | ❌ |
| SQL 表达力 | SQLite(够用) | Postgres 完整 | SQLite | MySQL | Postgres 完整 |
| 冷启动 | <10ms | ~500ms | <10ms | ~100ms | ~500ms |
| 免费额度 | 慷慨 | 中等 | 高 | 无免费 | 中等 |
| 自建 | ✅ sqld 开源 | Neon 开源 | ❌ | ❌ | ✅ 全栈开源 |
选型速查
- 选 Turso 如果
- 需要嵌入式副本 / 多区域多租户 / 原生向量 / SQLite 生态够用
- 选 Neon 如果
- 必须 Postgres 全部特性 / 需要 strong branch / 希望单一 postgres 生态
- 选 D1 如果
- 重度依赖 Cloudflare Workers 栈 / 希望完全和 CF 捆绑
- 选 Supabase 如果
- 要 Postgres + Auth + Storage + Realtime 全家桶
10.6 自建:sqld 开源方案
Turso 的后端服务 sqld(现已改名 libsql-server)MIT 开源——想自建的话:
# 用 Docker
docker run -p 8080:8080 ghcr.io/tursodatabase/libsql-server:latest
# 客户端连
createClient({ url: 'http://localhost:8080' })
生产部署
- 单实例:Fly.io、Hetzner VPS,带持久卷
- 副本:主节点 + replica 模式,主从复制基于 WAL
- 备份:S3 bucket +
--bottomless-bucket选项自动上传 WAL
自建 vs Turso 托管
| 自建 sqld | Turso 托管 | |
|---|---|---|
| 成本 | 低(一台 VPS) | 按量,百级月费常见 |
| 运维 | 要自己管 | 零 |
| 多区域 | 手动部署 | 一条命令 |
| 备份 | 自配 | 内置 PITR |
| 合规 | 完全自控 | Turso 有 SOC2 |
中小项目 Turso 托管更划算(省时间);大规模 / 合规要求严的可以考虑自建。
10.7 反模式清单
- ✘ 用 Turso 做"共享缓存"(高并发写)——换 Redis
- ✘ 一张表几亿行向量 + 频繁增删——换专业向量库
- ✘ 需要跨 tenant 全局 JOIN——不要 DB-per-tenant,合到单库
- ✘ 不加索引的 vector_top_k 在百万向量表上跑——秒级全表扫
- ✘ 嵌入式副本跑 Serverless 函数——冷启动每次都要拉全量
- ✘ 同步(
sync())跟查询共用主线程——大数据量 sync 时阻塞
10.8 进阶资源
- docs.turso.tech — 官方文档
- tursodatabase/libsql — libSQL 源码
- libsql-server — sqld 服务端
- Discord — 社区活跃、Turso 工程师常驻
- 本站 Drizzle 教程、RAG 教程——搭配阅读
结语
十章走完,Turso 的图谱清晰了:libSQL(SQLite 分布式 fork)+ 多区域副本 + 嵌入式副本 + 原生向量。它不是要替代 Postgres 做一切——而是在 Edge 时代提供一种新选择:近用户、低延迟、按需下沉到应用进程。
推荐行动:
turso db create开个免费库,跑完第 3-4 章样例- 把现有项目的一个小模块(博客/文档/配置)迁到 Turso,感受一下延迟差异
- 如果涉及 RAG——立刻试 F32_BLOB + vector_top_k,省掉 Pinecone 月费
感谢阅读。古法编程团队下一节再见。