Cálculos de tamanho de armazenamento
Nesta página, você verá a descrição do tamanho do armazenamento de documentos, dos nomes de documentos, dos campos e das entradas de índice no Firestore.
Saiba mais sobre os custos desse armazenamento em Preços do Firestore.Tamanho de strings
O tamanho das strings é calculado pelo número de bytes codificados em UTF-8 + 1.
Estes elementos são armazenados como strings:
- IDs de coleções
- IDs de documentos de string
- Nomes de documentos
- Nomes de campos
- Valores de campos de strings
Exemplo:
- As
tasks
do ID da coleção usam 5 bytes + 1 byte, totalizando 6 bytes. - A
description
do nome do campo usa 11 bytes + 1 byte, totalizando 12 bytes.
Tamanho de IDs de documento
O tamanho de um ID de documento é o mesmo da string de um ID de string ou 8 bytes no caso de um ID de número inteiro.
Tamanho do nome do documento
O tamanho de um nome de documento é a soma dos seguintes valores:
- O tamanho de cada ID de coleção e do ID de documento no caminho para o documento
- 16 bytes extras
O tamanho do nome de um documento na subcoleção users/jeff/tasks
com um ID de documento de string my_task_id
será de 6 + 5 + 6 + 11 + 16 = 44 bytes:
- 6 bytes do ID da coleção de
users
- 5 bytes do ID do documento
jeff
- 6 bytes do ID da coleção de
tasks
- 11 bytes do ID do documento
my_task_id
- 16 bytes extras
Tamanho do valor de campo
Na tabela a seguir, você vê o tamanho dos valores de campo por tipo.
Tipo | Tamanho |
---|---|
Matriz | A soma dos tamanhos dos valores da matriz |
Booleano | 1 byte |
Bytes | Comprimento do byte |
Data e hora | 8 bytes |
Número de ponto flutuante | 8 bytes |
Ponto geográfico | 16 bytes |
Número inteiro | 8 bytes |
Mapa | O tamanho do mapa, calculado da mesma maneira que o tamanho do documento |
Nulo | 1 byte |
Referência | O tamanho do nome do documento |
String de texto | Número de bytes codificados em UTF-8 + 1 |
Por exemplo, um campo booleano denominado done
usaria 6 bytes:
- 5 bytes do nome do campo
done
- 1 byte do valor booleano
Tamanho do documento
O tamanho de um documento é a soma dos seguintes valores:
- O tamanho do nome do documento
- A soma do tamanho da string de cada nome de campo
- A soma do tamanho de cada valor de campo
- 32 bytes extras
Este exemplo é para um documento na subcoleção users/jeff/tasks
com um ID de documento de string de my_task_id
:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
O tamanho total dos campos é de 71 bytes:
Nome e valor do campo | Tamanho do campo em byte |
---|---|
"type": "Personal" |
14: 5 do nome do campo + 9 do valor da string do campo |
"done": false |
6: 5 do nome do campo + 1 do valor booleano do campo |
"priority": 1 |
17: 9 do nome do campo + 8 do valor inteiro do campo |
"description": "Learn Cloud Firestore" |
34: 12 do nome do campo + 22 do valor da string do campo |
Assim, o tamanho do documento é 44 + 71 + 32 = 147 bytes:
- 44 bytes do nome do documento
- 71 bytes dos campos
- 32 bytes extras
Tamanho de entradas de índice
O tamanho de entradas de índice é calculado da seguinte forma nos índices de campo único e compostos.
Tamanho da entrada de índice de campo único
O tamanho de uma entrada de índice de campo único depende se o escopo do índice foi delimitado a uma coleção ou a um grupo de coleções.
Escopo da coleção
O tamanho de uma entrada em um índice de campo único com o escopo delimitado a uma coleção é a soma dos seguintes itens:
- Tamanho do nome do documento indexado
- Tamanho do nome do documento pai do documento indexado
- Tamanho da string do nome do campo indexado
- Tamanho do valor do campo indexado
- 32 bytes extras
Considere um documento na subcoleção users/jeff/tasks
com um ID de documento de string de my_task_id
:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
O tamanho total da entrada em um índice de campo único com escopo de coleção que indexa o campo done
é de 109 bytes:
- 44 bytes do nome do documento
users/jeff/tasks/my_task_id
- 27 bytes do nome do documento pai
users/jeff
- 5 bytes do nome do campo
done
- 1 byte do valor de campo booleano
- 32 bytes extras
Escopo do grupo de coleções
O tamanho de uma entrada em um índice de campo único com o escopo delimitado a um grupo de coleções é a soma dos seguintes itens:
- Tamanho do nome do documento indexado
- Tamanho da string do nome do campo indexado
- Tamanho do valor do campo indexado
- 48 bytes extras
Considere um documento na subcoleção users/jeff/tasks
com um ID de documento de string de my_task_id
:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
O tamanho total da entrada em um índice de campo único com escopo de grupo de coleções que indexa o campo done
é de 98 bytes.
- 44 bytes do nome do documento
users/jeff/tasks/my_task_id
- 5 bytes do nome do campo
done
- 1 byte do valor de campo booleano
- 48 bytes extras
Tamanho da entrada de índice composto
O tamanho de uma entrada em um índice composto depende se o escopo do índice foi delimitado a uma coleção ou a um grupo de coleções.
Escopo da coleção
O tamanho de uma entrada de índice composto com escopo delimitado a uma coleção é a soma dos seguintes itens:
- Tamanho do nome do documento indexado
- Tamanho do nome do documento pai do documento indexado
- A soma dos valores de campo indexados
- 32 bytes extras
Considere um documento na subcoleção users/jeff/tasks
com um ID de documento de string de my_task_id
:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
O tamanho total da entrada em um índice composto com escopo de coleção que indexa os campos done
e priority
(ambos crescentes) é de 112 bytes:
- 44 bytes do nome do documento
users/jeff/tasks/my_task_id
- 27 bytes do nome do documento pai
users/jeff
- 1 byte do valor de campo booleano
- 8 bytes do valor de campo de número inteiro
- 32 bytes extras
Escopo do grupo de coleções
O tamanho de uma entrada de índice composto com escopo delimitado a um grupo de coleções é a soma dos seguintes itens:
- Tamanho do nome do documento indexado
- A soma dos valores de campo indexados
- 32 bytes extras
Considere um documento na subcoleção users/jeff/tasks
com um ID de documento de string de my_task_id
:
- "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Cloud Firestore"
O tamanho total da entrada em um índice composto com escopo de grupo coleção que indexa os campos done
e priority
(ambos crescentes) é de 85 bytes:
- 44 bytes do nome do documento
users/jeff/tasks/my_task_id
- 1 byte do valor de campo booleano
- 8 bytes do valor de campo de número inteiro
- 32 bytes extras