儲存空間大小計算
本頁說明與 MongoDB 相容的 Firestore 中,文件、欄位和索引項目的儲存空間大小。您可以在 Firestore Enterprise 版定價查詢這類儲存空間的費用。
字串大小
字串大小按 UTF-8 編碼位元組的數目 + 1 計算。
以下均以字串形式儲存:
- 集合名稱
- 欄位名稱
- 字串欄位值 (包括
_id
)
例如:
- 集合名稱
tasks
使用 5 個位元組 + 1 個位元組,共 6 個位元組。 - 欄位名稱
description
使用 11 個位元組 + 1 個位元組,共 12 個位元組。
欄位值大小
下表依類型顯示欄位值的大小。
類型 | 大小 |
---|---|
陣列 | 其值的大小總和 |
布林值 | 1 個位元組 |
二進位資料 | 非泛型 (非 0) 子類型的位元組長度 + 1 |
日期 | 8 個位元組 |
雙精度值 | 8 個位元組 |
Double128 | 16 個位元組 |
32 位元整數 | 4 個位元組 |
64 位元整數 (長整數) | 8 個位元組 |
物件 | 內嵌物件中每個欄位名稱的字串大小,以及每個欄位值的字串大小總和 |
Min Key | 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 個位元組:
- 集合名稱
tasks
佔 6 個位元組 _id
欄位值佔 11 個位元組- 布林值欄位值佔 1 個位元組
- 32 位元整數字段值佔 4 個位元組
- 額外 48 個位元組
如果是稀疏索引,如果文件未包含任何欄位,系統就不會建立索引項目。如果文件包含至少一個已建立索引的欄位,系統就會建立索引項目,並將缺少的已建立索引欄位設為 NULL
。