存储空间大小的计算
本页面介绍了与 MongoDB 兼容的 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 个字节 |
对象 | 每个字段名称的字符串大小总和以及嵌入式对象中每个字段值大小的总和 |
最小值键 | 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
。
后续步骤
了解价格。