服务对象与地域限制
PuppyIP 仅面向海外合规企业及其授权人员提供服务,不面向中国大陆地区开放或提供代理服务。本服务仅限用于中国大陆境外的合法业务活动,严禁在中国大陆境内使用本服务。
代理 IP 或服务器位于境外,不改变上述限制。不得通过中转、转接、共享或转售向中国大陆境内的最终使用者提供本服务。使用前请阅读用户服务协议。
本文要点
- 10 月 30 日公告给出的生效日为 2026 年 11 月 4 日,未说明具体时刻或时区;目前应按即将执行的限制准备。
- 50 MB 约束查询返回结果,不是数据库总容量、SQL 文本长度或每月读取额度。
- 超限将返回明确的最大响应大小错误。优先检查 SELECT *、大文本字段和一次性取全量的查询。
- REST API 导入、导出不受这项结果大小限制;其他操作限制和导出对数据库请求的影响仍需核对。
11 月 4 日改变的是查询结果上限
Cloudflare 在 2026 年 10 月 30 日公告:D1 将从 11 月 4 日(星期三)开始强制执行 50 MB 的最大查询结果限制。当前限制文档的脚注也给出同一日期。公告没有提供切换时刻或时区,不应把日期自行换算成某个地区的午夜。
返回结果超过上限时,官方列出的错误为:D1 query result exceeded the maximum response size limit of 50 MB。Cloudflare 表示这项阈值可覆盖其请求分布的 99.999 分位,预计大多数用户不受影响;这个平台统计不能证明自己的报表、同步或下载接口一定安全。
先找一次取太多数据的调用
先列出应用中直接读取大结果的路径,例如后台列表、定时报表、跨系统同步和自制数据下载。检查是否使用 SELECT *,是否返回页面根本不用的大文本或 BLOB,以及是否先把整张表取回再在应用中筛选。这里检查的是返回内容,不是只看数据库文件有多大。
在有权使用的隔离样本中保留原查询、字段、排序及结果大小,再改成只返回消费者实际需要的字段。本文没有执行真实数据库查询或测量任何账户负载;自查建议也不是 Cloudflare 对特定应用的兼容保证。
按需选列,再把结果拆成可核对的分页
官方给出的处理方向是按需选列,并用 LIMIT 和 OFFSET 分页。假设测试表 demo_items 有唯一 id 和 name,只展示这两个字段,可以先用 SELECT id, name FROM demo_items ORDER BY id LIMIT 100 OFFSET 0;下一页把 OFFSET 改为 100。这是说明方法的假设例子,不是针对实际业务表的现成迁移。
100 行不是保证低于 50 MB 的通用值:每行内容不同,需要依据实际结果大小调整页大小。为分页选择稳定排序;数据持续变化时,还要按业务的一致性要求核对遗漏和重复。不要只增加重试次数,反复请求同一份过大的结果不会减少它的体积。
REST API 导入导出有例外,但不等于任意导出都无上限
公告与限制页明确排除通过 REST API 进行的导入、导出操作。不要把应用自写的全量 SELECT 下载接口当成这一例外,也不要把例外扩大成所有数据库、备份工具或每种客户端都没有限制。需要搬运数据时,先按官方导入导出文档核实自己实际走的操作。
当前导出帮助还说明,运行中的导出会阻塞其他数据库请求,且含虚拟表的数据库不支持该导出。例外不消除这些条件。不要为了完成导出直接删除业务表;重要数据操作需按自己的维护和恢复方案单独评估,本文没有运行导入或导出。
用结果和错误确认修改是否有效
在隔离环境比较修改前后的必要字段、记录数量、分页边界和下游消费结果;确认减少体积后仍满足原来的任务。上线前重点关注大结果调用,而非无差别重写所有小查询。生效前没有看到这个错误,也不证明生效后一定不会遇到。
结果大小、查询耗时和 Worker 资源限制是不同问题。若出现其他错误,按官方错误表辨认具体原因;不要把 CPU、内存或请求次数问题统称为 50 MB 限制。更换 IP 或请求出口不会改变数据库服务限制。
资料来源
常见问题
付费方案能自动免除这项 50 MB 限制吗?
公告和限制页没有给这项限制列出付费或特定地区的豁免,也没有承诺升级即可取消。限制页的一般额度申请入口不等于这项上限已获准提高;特殊需求先向 Cloudflare 核实。
数据库超过 50 MB 就不能使用了吗?
不是。该条目限制单次查询返回结果,数据库存储、单行大小和其他额度各有独立规定。数据库较大不代表每条查询都会超限,数据库较小也不能替代对实际结果的检查。
把大查询放进 batch 就能绕过限制吗?
不能这样推定。D1 限制文档说明,单条查询的限制同样适用于 batch 中的各条语句。batch 的调用计数规则与结果大小是不同维度,仍应减少每条查询需要返回的数据。