本頁面說明 Cloud Firestore 中文件、欄位和索引項目的儲存空間大小。
您可以在「定價」頁面查詢這類儲存空間的費用。
字串大小
字串大小按 UTF-8 編碼位元組的數目 + 1 計算。
以下均以字串形式儲存:
- 集合名稱
- 欄位名稱
- 字串欄位值 (包括
_id)
例如:
- 集合名稱
tasks使用 5 個位元組 + 1 個位元組,共 6 個位元組。 - 欄位名稱
description使用 11 個位元組 + 1 個位元組,共 12 個位元組。
欄位值大小
下表依類型顯示欄位值的大小。
| 類型 | 大小 |
|---|---|
| 陣列 | 其值的大小總和 |
| 布林值 | 1 個位元組 |
| 二進位資料 | 非泛型 (非 0) 子類型的位元組長度 + 1 |
| 日期 | 8 個位元組 |
| 雙人床 | 8 個位元組 |
| Double128 | 16 個位元組 |
| 32 位元整數 | 4 個位元組 |
| 64 位元整數 (long) | 8 個位元組 |
| 物件 | 內嵌物件中每個欄位名稱的字串大小,以及每個欄位值的字串大小總和 |
| Min 鍵 | 1 個位元組 |
| 最高速金鑰 | 1 個位元組 |
| 空值 | 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 個位元組:
- 集合名稱佔 6 個位元組
tasks _id欄位值佔 11 個位元組- 布林值欄位值佔 1 個位元組
- 32 位元整數欄位值佔 4 個位元組
- 額外 48 個位元組
如果是稀疏索引,如果文件未包含任何欄位,系統就不會建立索引項目。如果文件包含至少一個已建立索引的欄位,系統會建立索引項目,並將缺少的已建立索引欄位設為 NULL。
變更串流事件項目大小
變更串流事件的大小是以下各項的總和:
- 集合名稱的字串大小總和 (x2)。
- 文件插入和更新事件:
- 如果適用於多文件交易,
lsid和txnNumber額外需要 24 個位元組。 - 92 個額外位元組
以工作集合中文件的插入事件為例:
{
"_id": { <Resume Token> },
"operationType": "insert",
"clusterTime": <Timestamp>,
"wallTime": <ISODate>,
"ns": {
"db": "db",
"coll": "tasks"
},
"documentKey": {
"_id": "my_task_id"
},
"fullDocument": {
"_id": "my_task_id",
"description": "Learn Cloud Firestore"
},
}
變更串流事件的總大小為 149 個位元組:
- 一般中繼資料佔 92 個位元組
- 根據集合名稱
tasks(6 個位元組) * 2,共 12 個位元組 _id欄位值佔 11 個位元組description欄位名稱佔 12 個位元組description欄位值佔 22 個位元組
文字搜尋索引項目大小
索引中文字搜尋索引項目的大小是以下幾項的總和:
- 集合名稱的字串大小
_id值的大小- 索引欄位值的位元組總和 (x2)
- 一般中繼資料額外佔 48 個位元組
以在 tasks 集合中插入文件為例:_id my_task_id
{ "_id": "my_place", "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
文字搜尋索引項目的總大小為 105 個位元組,計算依據如下:description
- 集合名稱
tasks佔 6 個位元組 _id值佔 11 個位元組- 44 個位元組,根據
description欄位 22 個位元組 x2 - 一般中繼資料額外佔 48 個位元組
地理空間索引項目大小
索引中地理空間索引項目的大小是以下幾項的總和:
- 集合名稱的字串大小
_id值的大小- 每個已建立索引的地理點佔 128 個位元組
- 一般中繼資料額外佔 48 個位元組
以在 places 集合中插入文件為例:_id my_place
{ "_id": "my_place", "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
根據以下因素,location 上的地理空間索引項目總大小為 192 個位元組:
- 集合名稱
places佔 7 個位元組 - 文件 ID 佔 9 個位元組
location欄位佔 128 個位元組- 一般中繼資料額外佔 48 個位元組
後續步驟
瞭解定價。