Расчеты размера хранилища

На этой странице описан размер хранилища документов, имена документов, поля и записи индекса в Cloud Firestore .

О стоимости этого хранилища можно узнать в разделе «Цены на Cloud Firestore .

Размер строки

Размер строк рассчитывается как количество байтов, закодированных в UTF-8, + 1.

Следующие данные хранятся в виде строк:

  • Идентификаторы коллекций
  • Идентификаторы документов в виде строк
  • Названия документов
  • Названия полей
  • Значения строковых полей

Например:

  • tasks по присвоению идентификаторов коллекции используется 5 байт + 1 байт, итого 6 байт.
  • description имени поля занимает 11 байт + 1 байт, итого 12 байт.

Размер идентификатора документа

Размер идентификатора документа может быть либо размером строки для строкового идентификатора, либо 8 байтами для целочисленного идентификатора.

Размер названия документа

Размер имени документа равен сумме следующих величин:

  • Размер каждого идентификатора коллекции и идентификатора документа в пути к документу.
  • 16 дополнительных байтов

Для документа в подколлекции users/jeff/tasks с идентификатором документа в виде строки my_task_id размер имени документа составляет 6 + 5 + 6 + 11 + 16 = 44 байта:

  • 6 байт для идентификатора коллекции users
  • 5 байт для идентификатора документа jeff
  • 6 байт для идентификатора коллекции tasks
  • 11 байтов для идентификатора документа my_task_id
  • 16 дополнительных байтов

Размер значения поля

В следующей таблице показан размер значений полей в зависимости от типа.

Тип Размер
Множество Сумма размеров его значений
Логический 1 байт
Байты Длина в байтах
Дата и время 8 байт
Число с плавающей запятой 8 байт
Географическая точка 16 байт
Целое число 8 байт
Карта Размер карты рассчитывается так же, как и размер документа.
Нулевой 1 байт
Ссылка Размер имени документа
Текстовая строка Количество байтов, закодированных в UTF-8 + 1
Вектор 8 байт на измерение

Например, логическое поле с именем done будет занимать 6 байтов:

  • 5 байт для имени поля done
  • 1 байт для логического значения

Размер документа

Размер документа — это сумма следующих величин:

Этот пример относится к документу из подколлекции users/jeff/tasks с идентификатором документа в виде строки my_task_id :

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Общий размер полей составляет 71 байт:

Название поля и значение Размер поля в байтах
"type": "Personal" 14
5 — имя поля + 9 — строковое значение поля
"done": false 6
5 — имя поля + 1 — логическое значение поля
"priority": 1 17
9 — имя поля + 8 — целочисленное значение поля
"description": "Learn Cloud Firestore" 34
12 — имя поля + 22 — строковое значение поля

Таким образом, размер документа составляет 44 + 71 + 32 = 147 байт:

  • 44 байта для имени документа
  • 71 байт для полей
  • 32 дополнительных байта

Размер записи в индексе

Размеры позиций в индексе рассчитываются следующим образом для однопольных и составных индексов.

Размер записи в индексе по одному полю

Размер записи в индексе, содержащем одно поле, зависит от того, относится ли индекс к коллекции или к группе коллекций.

Область применения коллекции

Размер записи в однопольном индексе с областью видимости коллекции равен сумме:

Рассмотрим документ в подколлекции users/jeff/tasks со строковым идентификатором документа my_task_id :

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Для однопольного индекса с областью видимости коллекции, индексирующего поле done , общий размер записи в этом индексе составляет 109 байт:

  • 44 байта для имени документа users/jeff/tasks/my_task_id
  • 27 байт для имени документа родительского документа users/jeff
  • 5 байт для имени поля done
  • 1 байт для значения логического поля
  • 32 дополнительных байта

Область действия группы коллекций

Размер записи в однопольном индексе с областью видимости группы коллекций равен сумме:

Рассмотрим документ в подколлекции users/jeff/tasks со строковым идентификатором документа my_task_id :

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Для однопольного индекса с областью действия в виде группы коллекций, индексирующего поле done , общий размер записи в этом индексе составляет 98 байт:

  • 44 байта для имени документа users/jeff/tasks/my_task_id
  • 5 байт для имени поля done
  • 1 байт для значения логического поля
  • 48 дополнительных байтов

Размер записи в составном индексе

Размер записи в составном индексе зависит от того, относится ли индекс к коллекции или к группе коллекций.

Область применения коллекции

Размер записи в составном индексе с областью охвата коллекции равен сумме:

Рассмотрим документ в подколлекции users/jeff/tasks со строковым идентификатором документа my_task_id :

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Для составного индекса с областью видимости коллекции, индексирующего поля done и priority (оба поля расположены в порядке возрастания), общий размер записи в этом индексе составляет 112 байт:

  • 44 байта для имени документа users/jeff/tasks/my_task_id
  • 27 байт для имени документа родительского документа users/jeff
  • 1 байт для значения логического поля
  • 8 байт для значения целочисленного поля
  • 32 дополнительных байта

Область действия группы коллекций

Размер записи в составном индексе с областью охвата группы коллекций равен сумме:

Рассмотрим документ в подколлекции users/jeff/tasks со строковым идентификатором документа my_task_id :

 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Для составного индекса с областью действия в виде группы коллекций, индексирующего поля done и priority (оба поля расположены в порядке возрастания), общий размер записи в этом индексе составляет 85 байт:

  • 44 байта для имени документа users/jeff/tasks/my_task_id
  • 1 байт для значения логического поля
  • 8 байт для значения целочисленного поля
  • 32 дополнительных байта

Что дальше?

Узнайте о ценах Cloud Firestore .