Относится только к версии Cloud Firestore Enterprise. |
На этой странице описывается размер хранилища документов, полей и записей индекса в Cloud Firestore с совместимостью с MongoDB.
Стоимость данного хранилища вы можете узнать на странице «Цены» .
Размер строки
Размеры строк рассчитываются как количество байтов в кодировке UTF-8 + 1.
Следующие данные хранятся в виде строк:
- Название коллекции
- Имена полей
- Значения строковых полей (включая
_id
)
Например:
-
tasks
имени коллекции используют 5 байтов + 1 байт, всего 6 байтов. -
description
имени поля использует 11 байтов + 1 байт, всего 12 байтов.
Размер значения поля
В следующей таблице показаны размеры значений полей по типу.
Тип | Размер |
---|---|
Множество | Сумма размеров его значений |
Булевое значение | 1 байт |
Двоичные данные | Длина байта + 1 для неуниверсального (не 0) подтипа |
Дата | 8 байт |
Двойной | 8 байт |
Двойной128 | 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
.
Что дальше?
Узнайте о ценах .