ストレージ サイズの計算
このページでは、Firestore のドキュメント、ドキュメント名、フィールド、およびインデックス エントリのストレージ サイズについて説明します。
Firestore の料金で、このストレージの費用について説明しています。文字列のサイズ
文字列のサイズは、UTF-8 でエンコードされたバイト数 + 1 の値として計算されます。
以下は、文字列として保存されます。
- コレクション ID
- 文字列ドキュメント ID
- ドキュメント名
- フィールド名
- 文字列フィールドの値
次に例を示します。
- コレクション ID
tasks
には、5 バイト + 1 バイト、合計 6 バイトが使用されます。 - フィールド名
description
には 11 バイト + 1 バイト、合計 12 バイトが使用されます。
ドキュメント ID のサイズ
ドキュメント ID のサイズは、文字列 ID の場合は文字列のサイズ、整数 ID の場合は 8 バイトです。
ドキュメント名のサイズ
ドキュメント名のサイズは、以下の値の合計です。
- ドキュメントのパスにある各コレクション ID およびドキュメント ID のサイズ
- 追加の 16 バイト
サブコレクション users/jeff/tasks
にあり、文字列ドキュメント ID が my_task_id
であるドキュメントの場合、ドキュメント名のサイズは 6 + 5 + 6 + 11 + 16 = 44 バイトです。
users
コレクション ID に 6 バイトjeff
ドキュメント ID に 5 バイトtasks
コレクション ID に 6 バイトmy_task_id
ドキュメント ID に 11 バイト- 追加の 16 バイト
フィールド値のサイズ
次の表に、フィールド値のサイズを型別に示します。
タイプ | サイズ |
---|---|
配列 | 各値のサイズの合計 |
ブール値 | 1 バイト |
バイト | バイト長 |
日時 | 8 バイト |
浮動小数点数 | 8 バイト |
地理的座標 | 16 バイト |
整数 | 8 バイト |
地図 | ドキュメントのサイズと同じ方法で計算されたマップのサイズ |
Null | 1 バイト |
リファレンス | ドキュメント名のサイズ |
テキスト文字列 | UTF-8 でエンコードされたバイト数 + 1 |
たとえば、done
という名前のブール値フィールドは 6 バイトを使用します。
done
フィールド名に 5 バイト- ブール値に 1 バイト
ドキュメントのサイズ
ドキュメントのサイズは以下の合計値となります。
- ドキュメント名のサイズ
- 各フィールド名の文字列サイズの合計
- 各フィールド値のサイズの合計
- 追加の 32 バイト
次に、サブコレクション users/jeff/tasks
にあり、文字列ドキュメント ID が my_task_id
であるドキュメントの例を示します。
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
フィールドの合計サイズは 71 バイトです。
フィールド名と値 | フィールドのサイズ(バイト) |
---|---|
"type": "Personal" |
14 フィールド名 5 + フィールドの文字列値 9 |
"done": false |
6 フィールド名 5 + フィールドのブール値 1 |
"priority": 1 |
17 フィールド名 9 + フィールドの整数値 8 |
"description": "Learn Cloud Firestore" |
34 フィールド名 12 + フィールドの文字列値 22 |
この結果、ドキュメントのサイズは 44 + 71 + 32 = 147 バイトとなります。
- ドキュメント名に 44 バイト
- フィールドに 71 バイト
- 追加の 32 バイト
インデックス エントリのサイズ
単一フィールド インデックスと複合インデックスの場合、インデックス エントリのサイズは次のように計算されます。
単一フィールド インデックス エントリのサイズ
単一フィールド インデックス エントリのサイズは、インデックスがコレクションかコレクション グループのどちらをスコープとするかによって異なります。
コレクションのスコープ
コレクションのスコープを使用する単一フィールド インデックスのエントリのサイズは、以下の合計値となります。
- インデックス付きドキュメントのドキュメント名のサイズ
- インデックス付きドキュメントの親ドキュメントのドキュメント名のサイズ
- インデックス付きフィールド名の文字列サイズ
- インデックス付きフィールド値のサイズ
- 追加の 32 バイト
サブコレクション users/jeff/tasks
にあり、文字列ドキュメント ID が my_task_id
であるドキュメントについて考えてみます。
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
done
フィールドをインデックス登録するコレクションのスコープを使用する単一フィールド インデックスの場合、このインデックスのエントリの合計サイズは 109 バイトです。
- ドキュメント名
users/jeff/tasks/my_task_id
に 44 バイト - 親ドキュメントのドキュメント名
users/jeff
に 27 バイト done
フィールド名に 5 バイト- ブール値フィールドの値に 1 バイト
- 追加の 32 バイト
コレクション グループのスコープ
コレクション グループのスコープを使用する単一フィールド インデックスのエントリのサイズは、以下の合計値となります。
- インデックス付きドキュメントのドキュメント名のサイズ
- インデックス付きフィールド名の文字列サイズ
- インデックス付きフィールド値のサイズ
- 追加の 48 バイト
サブコレクション users/jeff/tasks
にあり、文字列ドキュメント ID が my_task_id
であるドキュメントについて考えてみます。
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
done
フィールドをインデックス登録するコレクションのスコープを使用する単一フィールド インデックスの場合、このインデックスのエントリの合計サイズは 98 バイトです。
- ドキュメント名
users/jeff/tasks/my_task_id
に 44 バイト done
フィールド名に 5 バイト- ブール値フィールドの値に 1 バイト
- 追加の 48 バイト
複合インデックス エントリのサイズ
複合インデックス内のエントリのサイズは、インデックスがコレクションかコレクション グループのどちらをスコープとするかによって異なります。
コレクションのスコープ
コレクション スコープを使用する複合インデックス内のインデックス エントリのサイズは、以下の合計値となります。
- インデックス付きドキュメントのドキュメント名のサイズ
- インデックス付きドキュメントの親ドキュメントのドキュメント名のサイズ
- インデックス付きフィールド値の合計
- 追加の 32 バイト
サブコレクション users/jeff/tasks
にあり、文字列ドキュメント ID が my_task_id
であるドキュメントについて考えてみます。
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
done
フィールドと priority
フィールド(どちらも昇順)をインデックス登録するコレクションのスコープが使用されている複合インデックスの場合、このインデックスのエントリの合計サイズは 112 バイトになります。
- ドキュメント名
users/jeff/tasks/my_task_id
に 44 バイト - 親ドキュメントのドキュメント名
users/jeff
に 27 バイト - ブール値フィールドの値に 1 バイト
- 整数フィールド値に 8 バイト
- 追加の 32 バイト
コレクション グループのスコープ
コレクション グループのスコープを使用する複合インデックス内のインデックス エントリのサイズは、以下の合計値となります。
- インデックス付きドキュメントのドキュメント名のサイズ
- インデックス付きフィールド値の合計
- 追加の 32 バイト
サブコレクション users/jeff/tasks
にあり、文字列ドキュメント ID が my_task_id
であるドキュメントについて考えてみます。
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
done
フィールドと priority
フィールド(どちらも昇順)をインデックス登録するコレクションのスコープが使用されている複合インデックスの場合、このインデックスのエントリの合計サイズは 85 バイトになります。
- ドキュメント名
users/jeff/tasks/my_task_id
に 44 バイト - ブール値フィールドの値に 1 バイト
- 整数フィールド値に 8 バイト
- 追加の 32 バイト