En esta página se describe el tamaño de almacenamiento de las entidades, las claves, las propiedades y las entradas de índice en Firestore en el modo de Datastore. Puedes consultar los costes de este almacenamiento en la página Precios del modo Datastore.
Tamaño de cadena
El tamaño de las cadenas se calcula como el número de bytes codificados en UTF-8 más 1.
Los siguientes elementos se almacenan como cadenas:
- Claves
- Nombres de tipo
- Nombres de espacios de nombres (el espacio de nombres predeterminado tiene un tamaño de 0)
- Nombres de propiedad
- Valores de propiedad de cadena
Por ejemplo:
- El nombre del
Task
kind usa 4 bytes + 1 byte, lo que da un total de 5 bytes. - El nombre de la propiedad
description
usa 11 bytes + 1 byte, lo que da 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
- Tamaño de la cadena del espacio de nombres (si no está en el espacio de nombres predeterminado)
- Tamaño de la cadena de ruta de clave completa (los IDs de números enteros son de 8 bytes cada uno)
- 16 bytes
Para una clave de tipo Task
en el espacio de nombres predeterminado con un ID numérico y sin antecesor:
Task id:5730082031140864
El tamaño de la clave es 5 + 8 + 16 = 29 bytes:
- 5 bytes para el nombre del tipo
Task
- 8 bytes para el ID numérico
- 16 bytes para una clave
Para una clave de tipo Task
en el espacio de nombres predeterminado con un ID de cadena y sin ancestro:
Task name:my_task_id
El tamaño de la clave es 5 + 11 + 16 = 32 bytes:
- 5 bytes para el nombre del tipo
Task
- 11 bytes correspondientes al ID de cadena
my_task_id
- 16 bytes para una clave
Para una entidad Task
con un ancestro TaskList
en el espacio de nombres predeterminado:
TaskList id:5654313976201216 > Task id:5629499534213120
El ancestro usa 9 + 8 = 17 bytes:
- 9 bytes para el nombre del tipo
TaskList
- 8 bytes para el ID numérico
Por lo tanto, el tamaño de la clave de una entidad Task
con un ancestro TaskList
es de 17 + 5 + 8 + 16 = 46 bytes:
- 17 bytes para el elemento antecesor
- 5 bytes para el nombre del tipo
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, ya que el nombre my_name_space
usa 14 bytes.
Tamaño de la propiedad
El tamaño de una propiedad es la suma de
- Tamaño de la cadena del nombre de la propiedad
- Tamaño del valor de la propiedad
A continuación, se muestra el tamaño de los valores de propiedad por tipo.
Tipo | Tamaño |
---|---|
Matriz | la suma de los tamaños de sus valores |
Blob | longitud en bytes |
Booleano | 1 byte |
Doble | 8 bytes |
Entidad insertada | el tamaño de la entidad |
Punto geográfico | 16 bytes |
Entero | 8 bytes |
Clave | el tamaño de la clave |
Nulo | 1 byte |
Cadena | Número de bytes codificados en UTF-8 + 1 |
Marca de tiempo | 8 bytes |
Por ejemplo, una propiedad llamada done
de 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
- El tamaño de la clave
- La suma de los tamaños de las propiedades
- 32 bytes
Este ejemplo es para una entidad de tipo Task
en el espacio de nombres predeterminado con un ID numérico y sin ancestro:
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 para el valor de cadena de la propiedad |
"done": false |
6 5 para el nombre de la propiedad + 1 para el valor booleano de la propiedad |
"priority": 1 |
17 9 para el nombre de la propiedad + 8 para el valor entero de la propiedad |
"description": "Learn Google Cloud Datastore" |
41 12 para el nombre de la propiedad + 29 para el valor de cadena de la propiedad |
Por lo tanto, el tamaño de la entidad es 29 + 78 + 32 = 139 bytes:
- 29 bytes para la clave
- 78 bytes para las propiedades
- 32 bytes para una entidad
Tamaño de la entrada de índice
El tamaño de una entrada de índice se calcula de la siguiente manera para los índices compuestos y los integrados.
Índices integrados
El tamaño de una entrada de índice integrado es la suma de lo siguiente:
- El tamaño de la clave de la entidad indexada
- La suma de los nombres de las propiedades indexadas
- Suma de los valores de propiedad indexados.
- Tamaño del nombre del tipo de entidad indexada
- 32 bytes
Por ejemplo, tomemos una entidad de tipo Task
en el espacio de nombres predeterminado con un ID numérico y sin ancestro:
Task id:5730082031140864 - "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Google Cloud Datastore"
Si done
es una propiedad indexada, la entrada del índice integrado de la propiedad done
consta de la clave, el nombre y el valor de la propiedad done
, el nombre del tipo 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 de la propiedad
done
y el valor booleano - 5 para el nombre de tipo
Task
- 32 para una entrada de índice
De forma predeterminada, las bases de datos en el modo Datastore predefinen automáticamente dos índices de una sola propiedad para cada propiedad de cada tipo de entidad: uno en orden ascendente y otro en orden descendente. Por lo tanto, esta entidad tendría una entrada de índice de tamaño 72 bytes en el índice de una sola propiedad done
en orden ascendente y otra entrada de índice de tamaño 72 bytes en el índice de una sola propiedad done
en orden descendente.
Índices compuestos
El tamaño de una entrada de índice compuesto es la suma de lo siguiente:
- El tamaño de la clave de la entidad indexada
- Suma de los valores de propiedad indexados.
- 32 bytes
Por ejemplo, tomemos una entidad de tipo Task
en el espacio de nombres predeterminado con un ID numérico y sin ancestro:
indexes: - kind: Task properties: - name: done direction: asc - name: priority direction: asc
Considera un índice compuesto que use las propiedades done
y priority
(ambas ascendentes):
El tamaño total de la entrada de í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 entero de la propiedad
priority
- 32 para una entrada de índice
Si no quieres que Firestore en el modo de Datastore mantenga un índice de una propiedad, excluye la propiedad de tus índices. Ten en cuenta que, si excluyes una propiedad, se eliminará de todos los índices compuestos.
Siguientes pasos
- Consulta los precios del modo Datastore.
- Consulta información sobre los índices del modo Datastore.