En esta página, se describe el tamaño de almacenamiento de las entidades, las claves, las propiedades y las entradas de índice de Firestore en modo Datastore. Puedes obtener información sobre los costos de este almacenamiento en Precios del modo Datastore.
Tamaño de una string
Los tamaños de las strings se calculan como la cantidad de bytes con codificación UTF-8 más 1.
Los siguientes se almacenan como strings:
- Claves
- Nombres de categorías
- Nombres de espacios de nombres (el espacio de nombres predeterminado tiene un tamaño de 0)
- Nombres de las propiedades
- Valores de propiedad de las strings
Por ejemplo:
- El nombre de la categoría
Task
usa 4 bytes + 1 byte, lo que da un total de 5 bytes. - El nombre de la propiedad
description
usa 11 bytes + 1 byte, para un total de 12 bytes. - El nombre del espacio de nombres
my_name_space
usa 13 bytes + 1 byte, lo que da un total de 14 bytes.
Tamaño de la clave
El tamaño de una clave es la suma de lo siguiente:
- El tamaño de la string del espacio de nombres (si no está en el espacio de nombres predeterminados)
- El tamaño de la string de la ruta de la clave completa (los ID de números enteros utilizan 8 bytes cada uno)
- 16 bytes
Para una clave de categoría Task
en el espacio de nombres predeterminado con un ID numérico y sin principal:
Task id:5730082031140864
El tamaño de la clave es de 5 + 8 + 16 = 29 bytes:
- 5 bytes para el nombre de categoría
Task
- 8 bytes para el ID numérico
- 16 bytes para una clave
Para una clave de categoría Task
en el espacio de nombres predeterminado con un ID de string y sin principal:
Task name:my_task_id
El tamaño de la clave es de 5 + 11 + 16 = 32 bytes:
- 5 bytes para el nombre de categoría
Task
- 11 bytes para el ID de string
my_task_id
- 16 bytes para una clave
Para una entidad Task
con un principal TaskList
en el espacio de nombres predeterminado:
TaskList id:5654313976201216 > Task id:5629499534213120
El principal usa 9 + 8 = 17 bytes:
- 9 bytes para el nombre de categoría
TaskList
- 8 bytes para el ID numérico
Por lo tanto, el tamaño de la clave de una entidad Task
con un principal TaskList
usa 17 + 5 + 8 + 16 = 46 bytes:
- 17 bytes para el principal
- 5 bytes para el nombre de categoría
Task
- 8 bytes para el ID numérico
- 16 bytes para una clave
Si esta entidad está en el espacio de nombres my_name_space
, el tamaño de la clave es 14 + 46 = 60 bytes, porque el nombre my_name_space
usa 14 bytes.
Tamaño de la propiedad
El tamaño de una propiedad es la suma de lo siguiente:
- El tamaño de la string del nombre de la propiedad
- El tamaño del valor de la propiedad
La siguiente tabla muestra el tamaño del valor de la propiedad por tipo.
Tipo | Tamaño |
---|---|
Arreglo | La suma de los tamaños de sus valores |
Blob | Longitud de bytes |
Booleano | 1 byte |
Doble | 8 bytes |
Entidad incorporada | el tamaño de la entidad |
Punto geográfico | 16 bytes |
Entero | 8 bytes |
Clave | el tamaño de la clave |
Nulo | 1 byte |
String | la cantidad de bytes con codificación UTF-8 + 1 |
Marca de tiempo | 8 bytes |
Por ejemplo, una propiedad llamada done
con un tipo booleano usaría 6 bytes:
- 5 bytes para el nombre de la propiedad
done
- 1 byte para el valor booleano
Tamaño de la entidad
El tamaño de una entidad es la suma de lo siguiente:
- El tamaño de la clave
- La suma de los tamaños de las propiedades
- 32 bytes
Este ejemplo es para una entidad de categoría Task
en el espacio de nombres predeterminado con un ID numérico y sin principal:
Task id:5730082031140864 - "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Google Cloud Datastore"
El tamaño total de las propiedades es de 78 bytes:
Nombre y valor de la propiedad | Tamaño de la propiedad en bytes |
---|---|
"type": "Personal" |
14 5 para el nombre de la propiedad + 9 por el valor de string de la propiedad |
"done": false |
6 5 para el nombre de la propiedad + 1 por el valor booleano de la propiedad |
"priority": 1 |
17 9 para el nombre de la propiedad + 8 por el valor de número entero de la propiedad |
"description": "Learn Google Cloud Datastore" |
41 12 para el nombre de la propiedad + 29 por el valor de string de la propiedad |
Por lo que el tamaño de la entidad es de 29 + 78 + 32 = 139 bytes:
- 29 bytes para la clave
- 78 bytes para las propiedades
- 32 bytes para una entidad
Tamaño de una entrada del índice
El tamaño de la entrada de un índice se calcula de la siguiente manera para los índices integrados y compuestos.
Índices integrados
El tamaño de la entrada de un índice integrado es la suma de lo siguiente:
- El tamaño de la clave de la entidad indexada
- La suma de los nombres de la propiedad indexada
- La suma de los valores de la propiedad indexados
- El tamaño del nombre de la categoría de la entidad indexada
- 32 bytes
Por ejemplo, toma una entidad de categoría Task
en el espacio de nombres predeterminado con un ID numérico y sin principal:
Task id:5730082031140864 - "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Google Cloud Datastore"
Si done
es una propiedad indexada, la entrada de índice incorporado para el índice done
de la propiedad individual consta de la clave, el nombre y el valor de la propiedad done
, el nombre de la categoría Task
y 32 bytes para una entrada de índice. El tamaño total de esta entrada de índice es de 72 bytes:
- 29 para la clave
- 6 para el nombre y el valor booleano de la propiedad
done
- 5 para el nombre de categoría
Task
- 32 para una entrada de índice
Según la configuración predeterminada, las bases de datos en modo Datastore predefinen de forma automática dos índices de una sola propiedad para las propiedades de cada categoría de entidad, uno en orden ascendente y uno en orden descendente. Por lo tanto, esta entidad tendría una entrada de índice de 72 bytes en el índice done
de la propiedad individual en orden ascendente y una entrada de índice de 72 bytes en el índice done
de la propiedad individual en orden descendente.
Índices compuestos
El tamaño de la entrada del índice compuesto es la suma de lo siguiente:
- El tamaño de la clave de la entidad indexada
- La suma de los valores de la propiedad indexados
- 32 bytes
Por ejemplo, toma una entidad de categoría Task
en el espacio de nombres predeterminado con un ID numérico y sin principal:
indexes: - kind: Task properties: - name: done direction: asc - name: priority direction: asc
Considera un índice compuesto que usa las propiedades done
y priority
(ambas ascendentes):
El tamaño total de la entrada del índice en este índice es de 70 bytes:
- 29 para la clave
- 1 para el valor booleano de la propiedad
done
- 8 para el valor de número entero de la propiedad
priority
- 32 para una entrada de índice
Si no quieres que Firestore en modo Datastore mantenga un índice para una propiedad, excluye la propiedad de los índices. Ten en cuenta que, si excluyes una propiedad, la quitarás de cualquier índice compuesto.
¿Qué sigue?
- Obtén información sobre los precios del modo Datastore.
- Obtén información sobre los índices del modo Datastore.