Cloudflare D1から大きな結果を1回のクエリで取得するアプリケーションを運用している場合は、11月4日までに確認してください。この日以降、50 MBを超える結果を返すクエリはエラーになります。変更の対象は結果のサイズであり、データベースのサイズやAPIリクエストの容量ではありません。REST API経由のインポートとエクスポートは従来どおり利用できます。
何が変わるのか
Cloudflareは2026年10月30日に制限を発表しました。新しいルールは11月4日(水)に適用され、SQLクエリの結果が50 MBを超えると、D1はD1 query result exceeded the maximum response size limit of 50 MBというエラーを返します。同社によると、このしきい値はD1クエリの99.999パーセンタイルをカバーするため、大多数のクエリは上限を下回ります。これはCloudflareプラットフォーム全体に基づく推定であり、個別のアプリケーションに対する保証ではありません。
クエリ結果とデータ転送の違いが重要です。この制限はD1クエリが返す結果に適用されますが、REST API経由のインポートおよびエクスポート操作は明示的に対象外です。そのため、まず確認すべきなのは、多数の行や幅広いレコードを読み込み、結果全体を取得するアプリケーションのクエリです。
大きな結果が気づかないうちに発生する理由
応答のサイズは行数だけでは決まりません。列数の多いクエリは、レコード数がそれほど多くなくても大きな結果を返すことがあります。特に、長いテキストやその他の大きな値を含む行では、その傾向が強まります。SELECT *はすべての列を取得するため、呼び出し元が必要とする列が一部だけでも結果に含まれます。また、テーブルが時間とともに大きくなり、以前は安全だったクエリがしきい値を超えることもあります。
実務上は、単発の管理用エクスポートだけでなく、レポート処理、バックグラウンドジョブ、後続処理用のデータを集めるAPIメソッドなど、アプリケーションの定期的な処理も確認してください。これらは監査対象の例であり、いずれも必ず影響を受けるという意味ではありません。
クエリの準備方法
通知の中でCloudflareは、返すデータを絞ることを推奨しています。SELECT *の代わりに必要な列だけを選び、大きな結果はLIMITとOFFSETを使ってページ分割してください。こうすることで1回の応答サイズを減らし、複数のクエリに処理を分散できます。


- 列を多く取得するクエリを探す。
SELECT *を使うクエリ、行数を制限していないクエリ、大きなテキストフィールドを含むクエリを確認してください。 - 取得する列を絞る。後続の処理に本当に必要な列だけを指定します。
- 読み取りを分割する。Cloudflareの推奨どおり、
LIMITとOFFSETでページ単位に取得し、各部分を順番に処理します。 - 分割後の動作を確認する。アプリケーションが結果を正しく結合し、全件を1回の応答で受け取ることを前提としていないか確認してください。
個別のエクスポートで全データが必要な場合は、REST API経由のエクスポート操作が適しているか確認してください。Cloudflareは、この操作には新しい制限が適用されないと明示しています。ただし、通常のアプリケーション処理では、この例外を理由に大きなSQL応答の見直しを省くことはできません。
期限の対象となるユーザー
期限が直接関係するのは、50 MBを超える結果を返すクエリを利用しているD1ユーザーです。結果全体をメモリに読み込むコード、コンポーネント間で受け渡すコード、レポート用に結果を生成するコードを優先して確認してください。クエリがすでに小さなページと必要な列だけを返しているなら、特別な変更は不要かもしれません。判断の根拠となるのは、実際のクエリ応答サイズです。
11月4日より前に確認すれば、制限の適用開始前に、単一の大きな応答への依存を見つけられます。Cloudflareの推定では、大多数のクエリにとってしきい値は通常の量を大きく上回っています。影響を受けるシステムでは、取得するデータを絞る、分割して読み取る、またはエクスポート用に用意されたREST API経由の方法を使うのが、最も直接的な対応です。