ストレージ サイズの計算
このページでは、MongoDB 互換の Firestore のドキュメント、フィールド、インデックス エントリのストレージ サイズについて説明します。このストレージの費用については、Firestore Enterprise エディションの料金をご覧ください。
文字列のサイズ
文字列のサイズは、UTF-8 でエンコードされたバイト数 + 1 の値として計算されます。
以下は、文字列として保存されます。
- コレクション名
- フィールド名
- 文字列フィールドの値(
_id
を含む)
次に例を示します。
- コレクション名
tasks
には、5 バイト + 1 バイト、合計 6 バイトが使用されます。 - フィールド名
description
には 11 バイト + 1 バイト、合計 12 バイトが使用されます。
フィールド値のサイズ
次の表に、フィールド値のサイズを型別に示します。
タイプ | サイズ |
---|---|
配列 | 各値のサイズの合計 |
ブール値 | 1 バイト |
バイナリデータ | バイト長 + 1(ジェネリック以外の(0 以外の)サブタイプの場合) |
日付 | 8 バイト |
Double | 8 バイト |
Double128 | 16 バイト |
32 ビットの整数 | 4 バイト |
64 ビット整数(long) | 8 バイト |
オブジェクト | 各フィールド名の文字列サイズと、埋め込みオブジェクト内の各フィールド値のサイズの合計 |
最小キー | 1 バイト |
Max Key | 1 バイト |
Null | 1 バイト |
正規表現 | (パターンの長さ + 1)+(オプションの長さ + 1) |
タイムスタンプ | 8 バイト |
文字列 | UTF-8 でエンコードされたバイト数 + 1 |
たとえば、done
という名前のブール値フィールドは 6 バイトを使用します。
done
フィールド名に 5 バイト- ブール値に 1 バイト
ドキュメントのサイズ
ドキュメントのサイズは以下の合計値となります。
次の例は、コレクション tasks
内のドキュメントの例です。
{ "_id": "my_task_id", "type": "Personal", "done": false, "priority": 1, "description": "Learn Cloud Firestore" }
フィールドの合計サイズは 78 バイトです。
フィールド名と値 | フィールドのサイズ(バイト) |
---|---|
"_id": "my_task_id" |
フィールドの文字列値 11 |
"type": "Personal" |
14 フィールド名 5 + フィールドの文字列値 9 |
"done": false |
6 フィールド名 5 + フィールドのブール値 1 |
"priority": 1 |
17 フィールド名 9 + フィールドの 32 ビット整数値 4 |
"description": "Learn Cloud Firestore" |
34 フィールド名 12 + フィールドの文字列値 22 |
この結果、ドキュメントのサイズは 6 + 78 + 48 = 132 バイトとなります。
- 6: コレクション名
- フィールドに 78 バイト
- 追加の 48 バイト
インデックス エントリのサイズ
インデックス内のインデックス エントリのサイズは、以下の合計値となります。
tasks
コレクション内のドキュメントについて考えてみましょう。
{ "_id": "my_task_id", "type": "Personal", "done": false, "priority": 1, "description": "Learn Cloud Firestore" }
done
フィールドと priority
フィールド(どちらも昇順)のインデックスの場合、このインデックスのインデックス エントリの合計サイズは 70 バイトです。
- コレクション名
tasks
に 6 バイト _id
フィールド値に 11 バイト- ブール値フィールドの値に 1 バイト
- 32 ビット整数フィールド値に 4 バイト
- 追加の 48 バイト
スパース インデックスの場合、ドキュメントにフィールドが含まれていない場合、インデックス エントリは作成されません。ドキュメントにインデックス登録されたフィールドが 1 つ以上含まれている場合、インデックス エントリが作成され、インデックス登録されていないフィールドは NULL
に設定されます。
次のステップ
Firestore Enterprise エディションの料金を確認する。