| Это относится только к версии Cloud Firestore Enterprise. |
На этой странице описан размер хранилища документов, полей и записей индекса в Cloud Firestore с поддержкой MongoDB.
О стоимости этого хранилища вы можете узнать на странице «Цены» .
Размер строки
Размер строк рассчитывается как количество байтов, закодированных в UTF-8, + 1.
Следующие данные хранятся в виде строк:
- Название коллекции
- Названия полей
- Значения строковых полей (включая
_id)
Например:
- Название коллекции
tasksзанимает 5 байт + 1 байт, итого 6 байт. -
descriptionимени поля занимает 11 байт + 1 байт, итого 12 байт.
Размер значения поля
В следующей таблице показан размер значений полей в зависимости от типа.
| Тип | Размер |
|---|---|
| Множество | Сумма размеров его значений |
| Логический | 1 байт |
| Двоичные данные | Длина в байтах + 1 для нетипичного (не нулевого) подтипа |
| Дата | 8 байт |
| Двойной | 8 байт |
| Double128 | 16 байт |
| 32-битное целое число | 4 байта |
| 64-битное целое число (длинное) | 8 байт |
| Объект | Сумма размеров строк каждого имени поля и размеров каждого значения поля во встроенном объекте. |
| Мини-ключ | 1 байт |
| Макс Ключ | 1 байт |
| Нулевой | 1 байт |
| Регулярное выражение | (Длина шаблона + 1) + (Длина вариантов + 1) |
| Отметка времени | 8 байт |
| Нить | Количество байтов, закодированных в UTF-8 + 1 |
Например, логическое поле с именем done будет занимать 6 байтов:
- 5 байт для имени поля
done - 1 байт для логического значения
Размер документа
Размер документа — это сумма следующих величин:
- Размер строки названия коллекции
- Сумма размеров строк каждого имени поля (кроме
_id) - Сумма размеров значений каждого поля (включая
_id) - 48 дополнительных байтов
Этот пример относится к документу в 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 — имя поля + 4 — 32-битное целочисленное значение поля |
"description": "Learn Cloud Firestore" | 34 12 — имя поля + 22 — строковое значение поля |
Таким образом, размер документа составляет 6 + 78 + 48 = 132 байта:
- 6 для названия коллекции
- 78 байт для полей
- 48 дополнительных байтов
Размер записи в индексе
Размер записи в индексе равен сумме:
- Размер строки названия коллекции
- Размер значения поля
_id - Сумма значений индексированных полей
- 48 дополнительных байтов
Рассмотрим документ из набора tasks :
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
Для индекса по полям done и priority (оба поля возрастают) общий размер записи в этом индексе составляет 70 байт:
- 6 байт для
tasksсвязанных с именем коллекции. - 11 байтов для значения поля
_id - 1 байт для значения логического поля
- 4 байта для 32-битного целочисленного значения поля
- 48 дополнительных байтов
В случае разреженных индексов, если документ не содержит ни одного из индексируемых полей, запись в индексе не создается. Если документ содержит хотя бы одно из индексируемых полей, создается запись в индексе, в которой для отсутствующих индексируемых полей устанавливается значение NULL .
Что дальше?
Узнайте о ценообразовании .