jsonscraper
市场
返回期刊

Cloudflare D1 限制查询响应大小:为什么数据库导出另当别论

自 2026 年 11 月 4 日起,D1 查询结果超过 50 MB 时可能报错。限制针对查询响应;通过 REST API 导入和导出仍可照常进行。

编辑政策 报告错误

自 2026 年 11 月 4 日起,向 Cloudflare D1 发起的查询若返回超过 50 MB 的结果,就会报错。开发者需要注意这项变更的边界:限制针对单次查询结果的大小,而非数据库的最大容量。通过 REST API 导入和导出不受此限制,因此是否需要调整工作流程,取决于读取数据的方式。

文章:Cloudflare D1 限制查询响应大小:为什么数据库导出另当别论
摘要:D1 的 50 MB 限制针对单次查询结果大小,而非数据库容量。本文说明它影响哪些操作,以及如何拆分大型读取和导出任务。
图片用途:封面——核心概念
章节:Cloudflare D1 限制查询响应大小:为什么数据库导出另当别论
视觉主题:编辑风格图片,以一叠半透明数据卡片呈现数据库表格
限制针对单条 SQL 查询结果的大小,而非数据库的总体容量。© jsonscraper · AI 生成

具体限制了什么?

Cloudflare 在 10 月 30 日发布的说明中称,结果超过 50 MB 的查询会返回错误 D1 query result exceeded the maximum response size limit of 50 MB。该限制自 2026 年 11 月 4 日起生效。D1 文档也将其列为查询结果大小限制;与此同时,付费方案的数据库容量最高可达 10 GB,免费方案则为 500 MB。

这属于不同层面:存储容量规定数据库能容纳多少数据,结果限制则规定单次查询最多能返回多少数据。因此,数据库可以存储远超 50 MB 的数据,并且仍可分批读取。另一方面,即使数据库很小,如果查询选择了大量宽行或大型文本、二进制字段,也可能超过限制。

在Cloudflare 关于该限制的公告中,公司表示这一阈值涵盖了 D1 查询的第 99.999 百分位。这是供应商提供的查询分布估算;对于应用层面的验证,更重要的是测量实际响应,并找出会返回大型数据集的查询。

为什么通过 REST API 导出是另一回事?

应用查询通常会获取 SQL 执行结果,再将其交给调用代码。通过 REST API 导入和导出数据库则是不同的操作:Cloudflare 特别指出,这些操作不受新阈值限制,仍按原方式运行。因此,大型查询报错并不意味着无法从数据库导出大量数据。

文章:Cloudflare D1 限制查询响应大小:为什么数据库导出另当别论
摘要:D1 的 50 MB 限制针对单次查询结果大小,而非数据库容量。本文说明它影响哪些操作,以及如何拆分大型读取和导出任务。
图片用途:辅助插图 2——展示不同的具体方面
章节:为什么通过 REST API 导出是另一回事?
视觉主题:俄语技术信息图,展示两种经过核实的路径:SQL 查询返回行
分页读取可拆分 SQL 查询响应;通过 REST API 导入和导出则是独立操作。© jsonscraper · AI 生成插图

实际操作中,理解这一区别有助于选择正确的方式。如果应用需要获取所有记录以供展示、处理或生成报告,就应分批读取。如果目的是迁移或导出数据,应检查通过 REST API 导出的方案,而不是试图用一条 SQL 响应获取整个数据库。

如何缩小响应,同时保留所需数据?

第一步是去掉不需要的列。不要使用 SELECT *,而应只选择当前操作所需的字段。如果表中包含长篇描述、JSON 或 BLOB 值,这样尤其能减少响应体积。

第二步是按照 Cloudflare 的建议,使用 LIMIT 和 OFFSET 分批读取行。例如,界面可以在用户滚动时获取下一页,批处理任务则可以逐批处理数据。还应加入稳定的排序,例如按唯一标识符排序:如果数据在请求之间发生变化而没有排序,分页边界就可能移动。

对于耗时较长的导出任务,还可以保存最后一条已处理记录的检查点。这样,任务发生故障后即可继续执行,无须重新处理整个数据集。具体方案取决于应用;关键原则是限制每次响应的大小,而不是依赖一条返回整个数据集的查询。

应用中需要检查什么

首先检查会返回大量记录的查询:报告导出、管理界面、后台任务,以及返回行数组的 API 路由。可以暂时记录序列化响应的体积,或所选字段的数量和大小。随后应检查预期的最大数据量,而不能只依赖测试数据中通常较小的样本。

如果应用在变更生效后报错,D1 文档将此类错误与结果超过 50 MB 联系起来,并建议只选择必要列或对结果分页。这样便能将响应体积问题与执行时间、内存或数据库可用性限制区分开来:那些问题有不同的错误和成因。

对团队来说,结论很简单:普通的短查询可能无需调整,而大型读取应改为分批处理。此限制并不妨碍存储更大的数据库,也不会阻止通过 REST API 导出;它要求的是合理设计查询,确保单次响应不超过 50 MB。

人们

尚未列出本文的人员。

继续阅读Cloudflare D1 将限制查询结果大小:11月4日前需检查什么
阅读下一篇文章

将阅读内容转化为可用的集成

探索 jsonscraper 社交数据 API、测试请求并构建下一个工作流。

查看 API