儲存空間大小計算

本頁說明與 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"
}

如果 donepriority 欄位都有索引 (皆為遞增),此索引中的索引項目總大小為 70 個位元組:

  • 集合名稱 tasks 佔 6 個位元組
  • _id 欄位值佔 11 個位元組
  • 布林值欄位值佔 1 個位元組
  • 32 位元整數字段值佔 4 個位元組
  • 額外 48 個位元組

如果是稀疏索引,如果文件未包含任何欄位,系統就不會建立索引項目。如果文件包含至少一個已建立索引的欄位,系統就會建立索引項目,並將缺少的已建立索引欄位設為 NULL

後續步驟

瞭解 Firestore Enterprise 版定價