D1 免费层开始硬性限额:小应用的数据库预算怎么重算
涂阿燃解读 Cloudflare 2026 年 9 月 D1 免费层限额执行公告,把它换算成小应用的数据库预算:行数怎么计量、哪些查询模式最耗每日额度、怎么定位,以及额度用尽时如何优雅降级。
- 适用产品
- D1Workers
- 来源
- 作者经验涂阿燃的网络日志
- 作者
- 涂阿燃
要点
- 作者总结这次变化:Workers Free 下,账户当天的 D1 读取行或写入行超额后,查询会失败直到 UTC 00:00(北京时间 08:00);额度本身(每天 500 万行读取、10 万行写入)没变,限额按账户在所有项目间共享,数据不会丢。Cloudflare 2026 年 9 月 1 日更新日志确认了执行时间、UTC 午夜重置和已存数据不受影响。
- 他指出公告只承诺达到额度时发邮件,没有提前预警,需要提前知道的项目要自己看 Metrics,或基于 GraphQL Analytics API 做监控;他还指出 D1 旧发布说明里 2025 年 2 月 10 日已有执行限额的记载,与 2026 年这份公告存在冲突。
- 关于计量,他写到 D1 计的是扫描行和写入行,不是 SQL 条数,也不是返回行;索引能减少读取,但会带来写放大和存储增加。他列出的高风险模式:在无索引列上过滤、ORDER BY RANDOM() LIMIT 1、前导通配的 LIKE、无索引的 JOIN 或相关子查询、带多个索引的事件表,以及在控制台或 Wrangler 里跑的维护 SQL(同样计量)。
- 他的排查顺序:在 D1 Metrics 里定位数据库,用 wrangler d1 insights 按读取行排序找出查询,用 EXPLAIN QUERY PLAN 看执行计划,再先修最重的;降级设计上,额度错误不要重试,后台任务暂停到重置之后,并区分处理读取超额和写入超额两种错误。
- 如果优化仍不够,他写到 Workers Paid(最低 5 美元)会取消免费层的每日硬停,但超额按月计费,Workers 自身的请求和 CPU 时间另行计费。
原始来源
发布
D1 免费层开始硬性限额:小应用的数据库预算怎么重算
打开原始来源涂阿燃解读 Cloudflare 2026 年 9 月 D1 免费层限额执行公告,把它换算成小应用的数据库预算:行数怎么计量、哪些查询模式最耗每日额度、怎么定位,以及额度用尽时如何优雅降级。
其他推荐阅读
社区资源Workers +8
Cloudflare Medivh:自部署的近实时账单估算与告警
一个可自部署的开源监控:在 Cloudflare 按日更新的计费用量之上叠加当日估算费用,定期推送汇总,当前账期超过预算时调用 Webhook。
D1
CloudPrinters.sa:鉴权刷新令牌缺陷导致约 20 亿次 D1 写入,约 $2,078。
社区用户 salman1 称 CloudPrinters.sa 的 D1 平时费用为 $0,但在 2026 年 8 月 16 日至 9 月 15 日账期内,一个鉴权缺陷使某账户每次重试过期令牌时都重写其全部刷新令牌历史,产生约 20 亿次 D1 写入。他称已修复吊销逻辑与重试循环,并已提交账单工单,为约 $2,078 的 D1 写入超额请求善意抵扣。
作者经验账号级用量计费产品 +1
硬上限为何需要时间:Ashley Peacock 谈计费数据延迟
Cloudflare Durable Objects 团队的 Ashley Peacock(@ashleypeacock)从个人经验解释为何接近实时的费用上限难做,称硬性账单上限即将推出,并建议在此之前先配预算告警和问题告警。