Skip to content

非公式本サイトは非公式の日本語ドキュメントであり、Cloudflare 公式サイトではありません。最新情報はdevelopers.cloudflare.comをご確認ください。

制限

最終更新 Markdown で表示Agent セットアップ
機能 制限
アカウントあたりのデータベース数 50,000(Workers Paid)1 / 10(Free)
最大データベースサイズ 10 GB(Workers Paid)/ 500 MB(Free)
アカウントあたりの最大ストレージ 1 TB(Workers Paid)2 / 5 GB(Free)
Time Travel の期間(ポイントインタイムリカバリー) 30 日(Workers Paid)/ 7 日(Free)
Time Travel の最大復元回数 10 分間に 10 回(データベースあたり)
Worker 呼び出しあたりのクエリ数(サブリクエスト制限 を参照) 1000(Workers Paid)/ 50(Free)
テーブルあたりの最大列数 100
テーブルあたりの最大行数 無制限(データベースあたりのストレージ制限を除く)
文字列、BLOB、またはテーブル行の最大サイズ 2,000,000 バイト(2 MB)
SQL ステートメントの最大長 100,000 バイト(100 KB)
クエリあたりの最大バインドパラメーター数 100
SQL 関数あたりの最大引数数 32
LIKE または GLOB パターンの最大文字数(バイト) 50 バイト
Workers スクリプトあたりの最大バインディング数 約 5,000 3
SQL クエリの最大実行時間 30 秒 4
ファイルインポート(d1 execute)の最大サイズ 5 GB 5

Cloudflare は、Workers KVDurable ObjectsR2 など、ほかのストレージソリューションも提供しています。製品ごとに利点と制限が異なります。ユースケースに合うストレージは データまたはストレージ製品の選び方 で確認してください。

よくある質問

D1 の制限に関するよくある質問です。

D1 データベースはどれくらいの処理ができますか?

D1 は、ユーザー単位、テナント単位、エンティティ単位など、小さめ(10 GB)のデータベースを複数並べて水平にスケールアウトする設計です。 料金はクエリとストレージだけなので、数千のデータベースを追加料金なしで使ってアプリケーションを構築できます。

ストレージ

各 D1 データベースは、最大 10 GB のデータを保存できます。

同時実行とスループット

個々の D1 データベースは本質的に単一スレッドで、クエリを 1 つずつ処理します。

最大スループットは、クエリの所要時間に直結します。

  • 平均クエリが 1 ms なら、おおよそ毎秒 1,000 クエリを実行できます。
  • 平均クエリが 100 ms なら、毎秒 10 クエリを実行できます。

同時リクエストが多すぎるデータベースは、まずキューに入れようとします。キューが満杯になると、データベースは 「overloaded」エラー を返します。

個々の D1 データベースは、1 つの Durable Object で支えられています。D1 の読み取りレプリケーション を使う場合、各レプリカインスタンスは別の Durable Object であり、この指針はレプリカインスタンスごとに独立して適用されます。

クエリ性能

スループットでもっとも重要なのはクエリ性能です。目安は次のとおりです。

  • id に適切なインデックスがある SELECT name FROM users WHERE id = ? のような読み取りクエリは、SQL 実行時間が 1 ミリ秒未満です。
  • INSERTUPDATE のような書き込みクエリは、SQL 実行時間に数ミリ秒かかることがあり、書き込む行数に依存します。書き込みは複数拠点へ耐久的に永続化する必要があります。詳細は D1 が内部でデータを永続化する方法 を参照してください。
  • 数百万行に影響する大きな UPDATEDELETE などのデータ移行は、バッチで実行してください。一度に数十万行や数百 MB のデータを変更しようとする単一クエリは、実行制限を超えます。作業を小さな塊(例: 1 回あたり 1,000 行)に分けて、プラットフォーム制限内に収めてください。

クエリを速く効率よくするには、SQL スキーマに適切なインデックスを付けてください

CPU とメモリ

クエリ実行や結果のシリアライズを含む D1 データベース上の操作は、Workers プラットフォームの CPU とメモリ制限 の範囲で実行されます。

これらの制限、またはほかのプラットフォーム制限に達すると、エラーが発生します。詳細は D1 のエラー一覧 を参照してください。

Worker は D1 に同時に何本の接続を開けますか?

Worker の呼び出しごとに、D1 への接続を同時に最大 6 本開けます。

Worker の同時接続の詳細は、同時に開く接続 を参照してください。

Footnotes

  1. Workers Paid および Enterprise プランでは、リクエストによりアカウントあたりのデータベース数の上限を引き上げられます。アカウントあたり数百万〜数千万(またはそれ以上)のデータベースにも対応できます。引き上げの依頼方法は、このページの制限引き上げの案内を参照してください。

  2. Workers Paid および Enterprise プランでは、リクエストによりアカウントあたりの最大ストレージを引き上げられます。引き上げの依頼方法は、このページの制限引き上げの案内を参照してください。

  3. 1 つの Worker スクリプトのスクリプトメタデータは最大 1 MB です。バインディングとは、D1 データベース、KV ネームスペース、環境変数、シークレットなどのリソースへのバインドです。各リソースバインディングは約 150 バイトですが、環境変数とシークレットは指定した値のサイズに依存します。環境変数を除くと、1 つの Worker スクリプトに最大約 5,000 の D1 データベースをバインドできます。

  4. Cloudflare API へのリクエストは 30 秒以内に完了する必要があります。そのため、この時間制限はバッチ呼び出し全体にも適用されます。

  5. インポートするファイルは R2 にアップロードされます。R2 のアップロード制限 を参照してください。

役に立ちましたか?