D1 のクエリ結果が 50 MB 上限に!11 月 4 日から超えるとエラーだよ
こんにちは、しぃちゃんだよ!D1 を使っているみんなに、期限つきの大事なお知らせだよ。
Cloudflare Changelogなにが発表されたの?
Cloudflare の Changelog で、D1 が 2026 年 11 月 4 日(水)から、クエリ結果の最大サイズ 50 MB を強制すると告知されたよ。
今までどうだったの?
これまでは、この 50 MB の上限は強制されていなかったよ。
これで何が変わるの?
50 MB を超える結果を返すクエリは失敗して、次のエラーが返るようになるよ。
D1 query result exceeded the maximum response size limit of 50 MB
影響は小さい見込みで、この上限は D1 全体のリクエストの 99.999 パーセンタイルをカバーしているから、ほとんどのユーザーは影響を受けないみたい。
深く潜ってみよう
大きな結果を返しているクエリがある人は、施行日までに結果を小さくしてね。
- SELECT * をやめて、必要なカラムだけを選ぶ
- LIMIT と OFFSET でページネーションする
SELECT id, name FROM users ORDER BY id LIMIT 1000 OFFSET 0;
REST API 経由のインポートとエクスポートはこの上限の対象外で、今まで通り動くよ。詳しくは D1 の limits と error list のドキュメントを見てね。
まとめ
- 2026 年 11 月 4 日から、D1 のクエリ結果は 50 MB まで
- 超えると上記のエラーで失敗する
- 対策は必要なカラムだけの取得とページネーション
- インポートとエクスポートは対象外
D1 で大きなテーブルを丸ごと読んでいるアプリを持つ人は、今のうちにチェックしてね!