Cálculos do tamanho de armazenamento

Esta página descreve o tamanho de armazenamento de documentos, campos e entradas de índice no Firestore com compatibilidade com o MongoDB.

Pode saber mais sobre os custos deste armazenamento na página Preços.

Tamanho da string

Os tamanhos das strings são calculados como o número de bytes com codificação UTF-8 + 1.

Os seguintes elementos são armazenados como strings:

  • Nome da coleção
  • Nomes dos campos
  • Valores de campos de string (incluindo _id)

Por exemplo:

  • O nome da coleção tasks usa 5 bytes + 1 byte, para um total de 6 bytes.
  • O nome do campo description usa 11 bytes + 1 byte, para um total de 12 bytes.

Tamanho do valor do campo

A tabela seguinte mostra o tamanho dos valores dos campos por tipo.

Tipo Tamanho
Matriz A soma dos tamanhos dos respetivos valores
Booleano 1 byte
Dados binários Comprimento em bytes + 1 para um subtipo não genérico (diferente de 0)
Data 8 bytes
Duplo 8 bytes
Double128 16 bytes
Número inteiro de 32 bits 4 bytes
Número inteiro de 64 bits (longo) 8 bytes
Objeto A soma dos tamanhos das strings de cada nome de campo e os tamanhos de cada valor de campo no objeto incorporado
Chave mínima 1 byte
Chave máx. 1 byte
Nulo 1 byte
Expressão regular (Comprimento do padrão + 1) + (Comprimento das opções + 1)
Indicação de tempo 8 bytes
String Número de bytes codificados em UTF-8 + 1

Por exemplo, um campo booleano denominado done usaria 6 bytes:

  • 5 bytes para o nome do campo done
  • 1 byte para o valor booleano

Tamanho do documento

O tamanho de um documento é a soma do seguinte:

Este exemplo destina-se a um documento na coleção tasks:

{
  "_id": "my_task_id",
  "type": "Personal",
  "done": false,
  "priority": 1,
  "description": "Learn Cloud Firestore"
}

O tamanho total dos campos é de 78 bytes:

Nome e valor do campo Tamanho do campo em bytes
"_id": "my_task_id" 11 para o valor de string do campo
"type": "Personal" 14
5 para o nome do campo + 9 para o valor da string do campo
"done": false 6
5 para o nome do campo + 1 para o valor booleano do campo
"priority": 1 17
9 para o nome do campo + 4 para o valor inteiro de 32 bits do campo
"description": "Learn Cloud Firestore" 34
12 para o nome do campo + 22 para o valor da string do campo

Assim, o tamanho do documento é de 6 + 78 + 48 = 132 bytes:

  • 6 para o nome da coleção
  • 78 bytes para os campos
  • 48 bytes adicionais

Tamanho da entrada de índice

O tamanho de uma entrada de índice num índice é a soma do seguinte:

Considere um documento na coleção tasks:

{
  "_id": "my_task_id",
  "type": "Personal",
  "done": false,
  "priority": 1,
  "description": "Learn Cloud Firestore"
}

Para um índice nos campos done e priority (ambos ascendentes), o tamanho total da entrada do índice neste índice é de 70 bytes:

  • 6 bytes para o nome da coleção tasks
  • 11 bytes para o valor do campo _id
  • 1 byte para o valor do campo booleano
  • 4 bytes para o valor do campo de número inteiro de 32 bits
  • 48 bytes adicionais

Para índices esparsos, se um documento não incluir nenhum dos campos, não é criada nenhuma entrada de índice. Se um documento contiver, pelo menos, um dos campos indexados, é criada uma entrada de índice com os campos indexados ausentes definidos como NULL.

O que se segue?

Saiba mais acerca dos preços.