Esta página descreve o tamanho do armazenamento de entidades, chaves, propriedades e entradas de índice do Firestore no modo Datastore. Saiba mais sobre os custos desse armazenamento em Preços do modo Datastore.
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:
- chaves
- nomes de tipos
- nomes de namespaces (o namespace padrão tem o tamanho 0)
- nomes de propriedade
- valores das propriedades de strings
Exemplo:
- O nome do tipo
Task
usa 4 bytes + 1 byte, totalizando 5 bytes. - O nome da propriedade
description
usa 11 bytes + 1 byte, totalizando 12 bytes. - O nome do namespace
my_name_space
usa 13 bytes + 1 byte, totalizando 14 bytes.
Tamanho de chaves
O tamanho de uma chave é a soma:
- do tamanho da string do namespace (se não for o namespace padrão);
- do tamanho total da string do caminho da chave. Cada código de um número inteiro tem 8 bytes;
- 16 bytes
Para uma chave do tipo Task
no namespace padrão com um ID numérico e nenhum
ancestral:
Task id:5730082031140864
O tamanho da chave é 5 + 8 + 16 = 29 bytes:
- 5 bytes do nome do tipo
Task
- 8 bytes do código numérico
- 16 bytes de uma chave
Para uma chave do tipo Task
no namespace padrão com um ID de string e nenhum
ancestral:
Task name:my_task_id
O tamanho da chave é 5 + 11 + 16 = 32 bytes:
- 5 bytes do nome do tipo
Task
- 11 bytes do ID da string
my_task_id
- 16 bytes de uma chave
Para uma entidade Task
com um ancestral TaskList
no namespace padrão:
TaskList id:5654313976201216 > Task id:5629499534213120
O ancestral usa 9 + 8 = 17 bytes:
- 9 bytes do nome do tipo
TaskList
- 8 bytes do código numérico
Portanto, o tamanho da chave de uma entidade Task
com um ancestral TaskList
usa 17 + 5 + 8
+ 16 = 46 bytes:
- 17 bytes do ancestral
- 5 bytes do nome do tipo
Task
- 8 bytes do código numérico
- 16 bytes de uma chave
Se essa entidade estiver no namespace my_name_space
, o tamanho da chave será 14 + 46 = 60
bytes, porque o nome my_name_space
usa 14 bytes.
Tamanho de propriedades
O tamanho de uma propriedade é a soma:
- do tamanho da string do nome da propriedade;
- do tamanho do valor da propriedade.
Veja a seguir o tamanho dos valores da propriedade por tipo.
Tipo | Tamanho |
---|---|
Matriz | a soma dos tamanhos dos valores |
Blob | comprimento em bytes |
Booleano | 1 byte |
Dupla | 8 bytes |
Entidade incorporada | o tamanho da entidade |
Ponto geográfico | 16 bytes |
Número inteiro | 8 bytes |
Chave | tamanho da chave |
Nulo | 1 byte |
String | número de bytes codificados em UTF-8 + 1 |
Carimbo de data/hora | 8 bytes |
Por exemplo, uma propriedade chamada done
com um tipo de booleano usaria 6 bytes:
- 5 bytes do nome da propriedade
done
- 1 byte do valor booleano
Tamanho da entidade
O tamanho de uma entidade é a soma:
- do tamanho da chave;
- da soma dos tamanhos das propriedades;
- mais 32 bytes.
Este exemplo refere-se a uma entidade do tipo Task
no namespace padrão com um
ID numérico e nenhum ancestral:
Task id:5730082031140864 - "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Google Cloud Datastore"
O tamanho total das propriedades é de 78 bytes:
Nome e valor das propriedades | Tamanho das propriedades em bytes |
---|---|
"type": "Personal" |
14 5 do nome da propriedade + 9 do valor da string da propriedade |
"done": false |
6 5 do nome da propriedade + 1 do valor booleano da propriedade |
"priority": 1 |
17 9 do nome da propriedade + 8 do valor inteiro da propriedade |
"description": "Learn Google Cloud Datastore" |
41 12 do nome da propriedade + 29 do valor da string da propriedade |
Portanto, o tamanho da entidade é de 29 + 78 + 32 = 139 bytes:
- 29 bytes da chave
- 78 bytes das propriedades
- 32 bytes de uma entidade
Tamanho de entradas de índice
Veja a seguir como é calculado o tamanho da entrada de um índice para índices integrados e compostos.
Índices integrados
O tamanho de uma entrada de índice integrada é a soma:
- do tamanho da chave da entidade indexada;
- dos tamanhos das propriedades indexadas;
- dos valores das propriedades indexadas;
- do tamanho do nome do tipo de entidade indexada;
- mais 32 bytes.
Por exemplo, observe uma entidade do tipo Task
no namespace padrão com um
ID numérico e nenhum ancestral:
Task id:5730082031140864 - "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Google Cloud Datastore"
Se done
for uma propriedade indexada, a entrada de índice integrado do
índice done
de propriedade única consistirá em: chave, nome e valor da propriedade done
,
nome do tipo Task
e 32 bytes de uma entrada de índice. O tamanho total dessa entrada
do índice é de 72 bytes:
- 29 da chave;
- 6 do nome e valor booleano da propriedade
done
; - 5 do nome do tipo
Task
; - 32 de uma entrada do índice.
Por padrão, os bancos de dados do modo Datastore predefinem automaticamente dois índices
de uma propriedade para cada propriedade de cada tipo de entidade, um em ordem crescente
e o outro em ordem decrescente. Portanto, essa entidade teria um tamanho de entrada de índice de 72 bytes no índice done
da propriedade única em ordem crescente e
um tamanho de entrada de índice de 72 bytes no índice done
da propriedade única
em ordem decrescente.
Índices compostos
O tamanho de uma entrada de índice composto é a soma:
- do tamanho da chave da entidade indexada;
- dos valores das propriedades indexadas;
- mais 32 bytes.
Por exemplo, observe uma entidade do tipo Task
no namespace padrão com um
ID numérico e nenhum ancestral:
indexes: - kind: Task properties: - name: done direction: asc - name: priority direction: asc
Considere um índice composto que use as propriedades done
e
priority
(ambas crescentes):
O tamanho total da entrada desse índice é de 70 bytes:
- 29 da chave;
- 1 do valor booleano da propriedade
done
- 8 do valor inteiro da propriedade
priority
- e 32 de uma entrada do índice.
Se não quiser que o Firestore no modo Datastore mantenha um índice para uma propriedade, exclua a propriedade dos índices. A exclusão de uma propriedade a remove de qualquer índice composto.
A seguir
- Saiba mais sobre Preços do modo Datastore.
- Saiba mais sobre Índices do modo Datastore.