/档案 ARD-083
核验日期: 2026年10月·定价 / 上限 / 文档结构·编辑部复核共识
矩阵深度审计//数据库与存储

Turso 与 Cloudflare D1 对比

Vector: 带本地副本的可移植 libSQL 集群与 Workers 原生无服务器 SQLite 对比
30 秒结论//档案 ARD-083
部署形态
结论

当你需要成千上万多数时间闲置的数据库、需要部署在自己的云内、或需要边缘侧微秒级本地读取时,选 Turso——注意它现已并入 Supabase。当你已经跑在 Workers 上、希望零运维 SQLite 且不收出口流量费时,选 Cloudflare D1,但要接受单库容量硬上限无法提升。

Turso 用 Rust 把 SQLite 重写为 libSQL,其平台为按租户与按智能体的数据库集群而设计——按需加载、闲置挂起,并可运行在客户自己的云内。Cloudflare D1 是托管的无服务器 SQLite 数据库,可从 Workers 或通过 HTTP API 访问,查询停止即停止计费,且不收数据传输费。两边的约束点不同:Turso 按集群存储、行数与同步量计费,公开的是计划级存储额度;D1 则受制于无法提升的单库容量硬上限、单库内的单线程执行,以及仍处于 Beta 且必须走 Sessions API 才生效的全球只读复制。Turso 正在并入 Supabase:官方声明现有用户不受影响,Supabase 继续深耕 Postgres,Turso 继续深耕 SQLite。

Turso分布式 libSQL(SQLite 分支)平台

适用边界: 按租户或按智能体的数据库集群、在虚拟机/VPS/移动端做本地优先读取、以及必须部署在自有云内的团队。

Cloudflare D1Cloudflare Workers 上的托管无服务器 SQLite

适用边界: 已经跑在 Workers 上、希望零运维 SQLite、需要全球只读副本、且希望流量停止即停止计费的应用。

指标实测
4 项指标 · 每项附出处
单库容量上限
计划级存储额度(Pro 为 50 GB) vs 单库 10 GB 硬上限Cloudflare D1 限额 — 单库最大 10 GB 且不可提升
闲置数据库计费
仅计存储 vs 不计计算Turso 定价页 — 闲置数据库只计存储
每百万行读取单价
阶梯单价 vs 每百万行 $0.001Cloudflare D1 定价页 — 写入计费与免费档日限额
每百万行写入单价
阶梯单价 vs 每百万行 $1.00Cloudflare D1 定价页 — 写入计费与免费档日限额

交互式场景权重演算器

权重合计: 100%

下面四个维度是本组矩阵自己的评估口径,不是一套固定分类。权重表示每个维度对你当前场景的重要程度;拟合度是三档评级的加权平均,不是实测基准。

典型场景预设
部署形态与架构主权35%

可自行托管的可移植集群 vs 平台托管的无服务器方案及其单库硬上限

成本模型与闲置经济性35%

大量多数时间闲置的数据库要花多少钱,以及读取与写入量如何计价

恢复与韧性边界15%

能恢复到多久之前,以及恢复操作是否被限流

单库并发与运维摩擦15%

两种设计各自在哪里停止扩展,以及运维需要记住什么

按当前权重的加权拟合拟合度更高
Turso (拟合度更高)

在你分配的权重下 Turso 得分更高;Cloudflare D1 则在其他约束为主的场景中适用。

Turso94%拟合
vs
Cloudflare D160%拟合
证据与权衡
编辑复核
评估维度 / 考量权重Turso (定性评估与实证)Cloudflare D1 (定性评估与实证)
部署形态与架构主权

可自行托管的可移植集群 vs 平台托管的无服务器方案及其单库硬上限

基准权重:30%
Turso首选推荐

Turso 用 Rust 把 SQLite 重写为 libSQL,数据库按需加载、闲置挂起,既可跑在 Turso Cloud,也可部署在客户自己的云内。嵌入式副本把只读副本放进应用进程,读取直接从本地文件解析、耗时在微秒级。但在把新项目的核心押在这种形态上之前,有两件事要知道:Turso 正在并入 Supabase;且对于需要同步的新项目,Turso 现已推荐改用 Turso Sync,而非嵌入式副本。

“For existing users, nothing changes. Supabase will continue building around Postgres, while Turso will continue its work on SQLite.”(原文)

“Embedded Replicas are fully supported in production. For new projects that need sync, we recommend Turso Sync.”(原文)

“Turso is joining Supabase to give every agent its own database”(原文)

Cloudflare D1有条件采纳

D1 既可从 Workers 访问,也可通过 HTTP API 访问,设计上支持以零额外成本创建数千个数据库做隔离,并内置灾难恢复。全球只读复制会在各区域放置只读副本,但它标注为 Beta,且只有查询走 D1 Sessions API 时才生效——否则全部由主库执行。此外每个数据库还有 Cloudflare 明确表示不可再提升的容量上限。

“D1 is Cloudflare’s managed, serverless database with SQLite’s SQL semantics, built-in disaster recovery, and Worker and HTTP API access.”(原文)

“D1 read replication can lower latency for read queries and scale read throughput by adding read-only database copies, called read replicas, across regions globally closer to clients.”(原文)

“To use read replication, you must use the D1 Sessions API, otherwise all queries will continue to be executed only by the primary database.”(原文)

“Maximum database size 10 GB (Workers Paid) / 500 MB (Free)”(原文)

成本模型与闲置经济性

大量多数时间闲置的数据库要花多少钱,以及读取与写入量如何计价

基准权重:25%
Turso首选推荐

闲置数据库只计存储费,因此大量多数时间闲置的集群依然便宜;时间点恢复与数据库分支不产生用量费用。档位从 Free 到 $4.99/月 的 Developer(数据库数量不限),再到 Scaler 与 Pro,超出部分的单位费率随档位上升而下降。Turso 公开的是计划级存储额度,而非单库容量上限。

“Idle databases cost only storage, so a large fleet of mostly-idle databases stays cheap. Point-in-time restore and database branching do not add usage cost.”(原文)

Cloudflare D1有条件采纳

D1 只按读取行数、写入行数与存储计费,闲置计算不收费,也不收数据传输或出口流量费;付费计划在按百万行计费之前包含很大的月度读取额度。需要提前规划的不对称在于:写入每百万行 $1.00,而读取每百万行 $0.001;超出包含量的存储按 GB-月另行计费。

“Rows read 5 million / day First 25 billion / month included + $0.001 / million rows”(原文)

“Rows written 100,000 / day First 50 million / month included + $1.00 / million rows”(原文)

“Storage (per GB stored) 5 GB (total) First 5 GB included + $0.75 / GB-mo”(原文)

“Does D1 charge for data transfer / egress? No.”(原文)

恢复与韧性边界

能恢复到多久之前,以及恢复操作是否被限流

基准权重:25%
Turso首选推荐

时间点恢复深度随档位提升——Free 为 1 天,Developer 保留 3 天,Scaler 为 14 天,Pro 为 30 天;删除数据库的恢复窗口按档位分别为 10 天、30 天与 90 天。恢复操作不计入用量,因此演练恢复不会推高账单。

“Point-in-time restore and database branching do not add usage cost.”(原文)

Cloudflare D1有条件采纳

D1 内置灾难恢复与 Time Travel 时间点恢复,在同等价格下比 Turso 的低档位保留更深。约束在吞吐:恢复操作按「每库每时间窗」限流,会对集群级恢复造成节流。

“Time Travel duration (point-in-time recovery) 30 days (Workers Paid) / 7 days (Free)”(原文)

“Maximum Time Travel restore operations 10 restores per 10 minutes (per database)”(原文)

“D1 is Cloudflare’s managed, serverless database with SQLite’s SQL semantics, built-in disaster recovery, and Worker and HTTP API access.”(原文)

单库并发与运维摩擦

两种设计各自在哪里停止扩展,以及运维需要记住什么

基准权重:20%
Turso有条件采纳

嵌入式副本在本地以微秒级完成读取,并保证 read-your-writes;但在没有文件系统的无服务器环境里完全不可用,且在副本同步期间打开本地数据库会导致损坏。同步量也可能超出预期:任何一次导致内部 btree 在节点处分裂的写入,都会向复制日志写入大量新帧。

“Do not open the local database while the embedded replica is syncing. This can lead to data corruption.”(原文)

“In certain contexts, such as serverless environments without a filesystem, you can’t use embedded replicas.”(原文)

“Embedded Replicas keep a local read replica of a Turso Cloud database: reads run locally from the file in microseconds”(原文)

Cloudflare D1有条件采纳

每个 D1 数据库本质上是单线程的,一次只处理一条查询,因此吞吐随查询耗时变化。此外还有单条查询与单次调用层面的上限:最长查询时长、单行或 BLOB 最大大小、每表列数上限等。账户级上限很高(可创建大量数据库、总存储额度大),因此压力集中在单库而非整个集群。

“Each individual D1 database is inherently single-threaded, and processes queries one at a time.”(原文)

“Maximum number of columns per table 100 Maximum number of rows per table Unlimited (excluding per-database storage limits)”(原文)

“If your average query takes 1 ms, you can run at most 1,000 queries per second.”(原文)

什么情况下不该选它
架构选型硬性否决

何时应当坚决放弃对应技术栈

任何技术架构均伴随特定妥协。如果您的业务命中了以下触发条件,引入该工具将带来不可控的工程债务而非杠杆效能。

切勿选用 Turso硬性否决
触发边界: 采购或合规评审要求供应商结构稳定,无法接受一家正在被收购中的供应商。
系统性失效风险:Supabase 于 2026-10-02 宣布收购 Turso,Turso 自家定价页也已挂出该公告横幅。官方声明称现有用户不受影响——Supabase 继续深耕 Postgres、Turso 继续深耕 SQLite——但该平台的长期路线图已与 Supabase 绑定。
建议替代方案: 选 Cloudflare D1 做 Workers 原生集群,或选 Neon(需要 Postgres 且想用分支能力,见 Supabase vs Neon 矩阵)。
切勿选用 Cloudflare D1硬性否决
触发边界: 单个数据库必须承载高写入吞吐或超出单库上限,且负载无法按租户分片。
系统性失效风险:单库容量上限无法提升;每个数据库都是单线程的,查询耗时越长吞吐越低;写入每百万行 $1.00,而读取每百万行 $0.001——写多的负载既会卡住也会变贵。全球只读复制缓解不了写入压力:它仍是 Beta,且只服务经由 Sessions API 路由的读取。
建议替代方案: 按用户或租户分片,这正是 D1 自身设计所面向的模式;否则选 Turso,其公开的上限是计划级存储额度,而不是单库硬上限。
在本地校验数据完整性
npm run verify