Skip to content

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

料金

最終更新 Markdown で表示Agent セットアップ

D1 の課金は次に基づきます。

  • 使用量: D1 に対して実行したクエリは、読み取り行、書き込み行、またはその両方(トランザクションやバッチの場合)としてカウントされます。
  • スケールツーゼロ: 時間やキャパシティユニットでは課金されません。データベースに対してクエリを実行していなければ、コンピュートは課金されません。
  • ストレージ: プランに含まれる 上限 を超えたストレージだけが課金対象です。

課金指標

Workers Free Workers Paid
読み取り行 5 million / 日 最初の 25 billion / 月を含む + $0.001 / million rows
書き込み行 100,000 / 日 最初の 50 million / 月を含む + $1.00 / million rows
ストレージ(保存 1 GB あたり) 5 GB(合計) 最初の 5 GB を含む + $0.75 / GB-mo

定義

  1. 読み取り行は、各行のサイズに関係なく、クエリが読み取った(スキャンした)行数です。たとえば、5000 行のテーブルでフルテーブルスキャンとして SELECT * FROM table を実行すると、読み取り行は 5,000 になります。インデックスのない列 で絞り込むクエリは、Worker に返す行数が少なくても、返す行を決めるためにさらに多くの行を読み取る(スキャンする)必要があります。
  2. 書き込み行は、D1 データベースへ書き込んだ行数です。書き込み操作には INSERTUPDATEDELETE があります。これらはいずれも書き込み行に計上されます。users テーブルへ 10 行を INSERT するクエリは、書き込み行 10 になります。
  3. DDL 操作(例: CREATEALTERDROP)は、データベースの構造を定義または変更します。読み取り行と書き込み行の両方に計上されることがあります。使用量は、利用できるツール(meta オブジェクトGraphQL Analytics API、または Cloudflare ダッシュボード)で正確に確認してください。
  4. 行のサイズや列数は、行のカウント方法に影響しません。1 KB の行も 100 KB の行も、いずれも 1 行としてカウントします。
  5. テーブルに インデックス を定義すると、そのインデックス付きフィールドで絞り込むクエリの読み取り行数を減らせます。たとえば、users テーブルのタイムスタンプ列 created_at にインデックスがある場合、クエリ SELECT * FROM users WHERE created_at > ?1 はテーブルの一部だけを読めば済みます。
  6. 書き込み対象にインデックス付き列が含まれると、インデックスにも 1 行書き込むため、書き込み行が 1 行増えます。テーブル本体へ 1 行、インデックスへ 1 行です。インデックスによる性能向上と読み取り行の削減は、ほぼすべての場合、この追加書き込みを上回ります。
  7. ストレージは、月あたりの保存ギガバイトに基づき、アカウント内のすべてのデータベースの合計です。テーブルとインデックスは、どちらも消費ストレージに計上されます。
  8. Free プランの上限は毎日 00:00 UTC にリセットされます。月次に含まれる上限は、最初にサブスクライブした日で決まる月次の更新日にリセットされます。
  9. D1 からアクセスするデータに、データ転送(エグレス)やスループット(帯域)の料金はありません。
  10. 読み取りレプリケーション では、読み取りレプリカに追加料金はかかりません。クエリによる rows_readrows_written に基づく、同じ使用量課金が発生します。

よくある質問

D1 の料金に関するよくある質問です。

D1 には常に Free プランがありますか?

はい、Workers Free プラン には、D1 を無料で試作・検証できる機能が常に含まれます。

Free プランで読み取り・書き込みの日次上限、または合計ストレージ上限を超えた場合はどうなりますか?

アカウントが日次の読み取り上限または書き込み上限に達すると、D1 に対してクエリを実行できなくなります。D1 API は、日次上限を超えたことを示すエラーをクライアントに返します。含まれるストレージ上限に達した場合は、新しいデータを挿入したり、テーブルを作成・変更したり、インデックスやトリガーを作成する前に、使っていないデータベースを削除するか、古いデータを整理する必要があります。

Workers Paid プランへアップグレードすると、通常は数分以内にこれらの上限が解除されます。

有料プランで月次に含まれる読み取り、書き込み、またはストレージを超えた場合はどうなりますか?

追加の読み取り、書き込み、ストレージは、D1 の課金指標 に従って課金されます。

最終的な請求額を見積もるにはどうすればよいですか?

すべてのクエリは、そのクエリが読んだ行数(rows_read)と書いた行数(rows_written)の合計を含む meta オブジェクトを返します。たとえば、5000 行のテーブルに対してフルテーブルスキャン(例: SELECT * FROM users)を行うクエリは、rows_read5000 になります。

"meta": {
  "duration": 0.20472300052642825,
  "size_after": 45137920,
  "rows_read": 5000,
  "rows_written": 0
}

これらの値は D1 の Cloudflare ダッシュボードanalytics API にも含まれるため、読み取り量と書き込み量を特定のデータベース、期間、またはその両方に紐づけられます。

D1 はデータ転送 / エグレスに課金しますか?

いいえ。

追加のコンピュートに対して、D1 はさらに課金しますか?

D1 自体は追加のコンピュートに課金しません。D1 にクエリを実行して結果を計算する Workers(例: 結果を JSON にシリアライズする、クエリを実行する)は、D1 固有の使用量に加えて、Workers の料金 に従って課金されます。

ダッシュボードまたは Wrangler(CLI)から実行したクエリは、課金対象の使用量に含まれますか?

はい。データベースに対して実行したすべてのクエリは、既存データを新しいデータベースへ挿入する(INSERT)、テーブルスキャン(SELECT * FROM table)、インデックスの作成を含め、読み取りまたは書き込みとしてカウントされます。

インデックスを使って、クエリが読む行数を減らせますか?

はい。インデックスを使うと、クエリが読む行数を減らせます。よくクエリするテーブルとフィルター対象の列に インデックスを作成 すると、スキャンするデータ量が減り、同時にクエリ性能も向上します。読み取りが多いワークロード(最も一般的)では、特に有効です。インデックスが参照する列への書き込みは、インデックス更新のため少なくとも 1 行分の追加書き込みが発生します。ただし、インデックスによって読み取り行数が減る効果で、通常は相殺されます。

新しく作成したデータベース、または行のない空のテーブルは、ストレージに計上されますか?

はい。ただしごくわずかです。空のテーブルでも、列数(テーブル幅)に応じて少なくとも数キロバイトを使います。空のデータベースは約 12 KB のストレージを使います。

役に立ちましたか?