Cálculos de tamaño del almacenamiento
En esta página se describe el tamaño de almacenamiento de los documentos, los campos y las entradas de índice en Firestore con compatibilidad con MongoDB.
Puedes consultar los costes de este almacenamiento en la página Precios.
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:
- Nombre de la colección
- Nombres de campos
- Valores de campos de cadena (incluido
_id
)
Por ejemplo:
- El nombre de la colección
tasks
usa 5 bytes + 1 byte, lo que da un total de 6 bytes. - El nombre de campo
description
usa 11 bytes + 1 byte, lo que da un total de 12 bytes.
Tamaño del valor del campo
En la siguiente tabla se muestra el tamaño de los valores de los campos por tipo.
Tipo | Tamaño |
---|---|
Matriz | La suma de los tamaños de sus valores |
Booleano | 1 byte |
Datos binarios | Longitud en bytes + 1 para un subtipo no genérico (distinto de 0) |
Fecha | 8 bytes |
Doble | 8 bytes |
Double128 | 16 bytes |
Entero de 32 bits | 4 bytes |
Entero de 64 bits (largo) | 8 bytes |
Objeto | La suma de los tamaños de cadena de cada nombre de campo y los tamaños de cada valor de campo del objeto insertado |
Clave mínima | 1 byte |
Max Key | 1 byte |
Nulo | 1 byte |
Expresión regular | (Longitud del patrón + 1) + (Longitud de las opciones + 1) |
Marca de tiempo | 8 bytes |
Cadena | Número de bytes codificados en UTF-8 + 1 |
Por ejemplo, un campo booleano llamado done
usaría 6 bytes:
- 5 bytes para el nombre del campo
done
- 1 byte para el valor booleano
Tamaño de documento
El tamaño de un documento es la suma de lo siguiente:
- El tamaño de la cadena del nombre de la colección
- La suma del tamaño de la cadena de cada nombre de campo (excepto
_id
) - La suma del tamaño de cada valor de campo (incluido
_id
) - 48 bytes adicionales
Este ejemplo es para un documento de la colección tasks
:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
El tamaño total de los campos es de 78 bytes:
Nombre y valor del campo | Tamaño del campo en bytes |
---|---|
"_id": "my_task_id" |
11 para el valor de cadena del campo |
"type": "Personal" |
14 5 para el nombre del campo + 9 para el valor de cadena del campo |
"done": false |
6 5 para el nombre del campo + 1 para el valor booleano del campo |
"priority": 1 |
17 9 para el nombre del campo + 4 para el valor entero de 32 bits del campo |
"description": "Learn Cloud Firestore" |
34 12 para el nombre del campo + 22 para el valor de cadena del campo |
Por lo tanto, el tamaño del documento es 6 + 78 + 48 = 132 bytes:
- 6 para el nombre de la colección
- 78 bytes para los campos
- 48 bytes adicionales
Tamaño de la entrada de índice
El tamaño de una entrada de índice en un índice es la suma de lo siguiente:
- El tamaño de la cadena del nombre de la colección
- El tamaño del valor del campo
_id
- La suma de los valores de campo indexados
- 48 bytes adicionales
Imagina que tienes un documento en la colección tasks
:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
En el caso de un índice en los campos done
y priority
(ambos ascendentes), el tamaño total de la entrada de índice en este índice es de 70 bytes:
- 6 bytes para el nombre de la colección
tasks
- 11 bytes para el valor del campo
_id
- 1 byte para el valor del campo booleano
- 4 bytes para el valor del campo entero de 32 bits
- 48 bytes adicionales
En el caso de los índices dispersos, si un documento no incluye ninguno de los campos, no se crea ninguna entrada de índice. Si un documento contiene al menos uno de los campos indexados, se crea una entrada de índice con los campos indexados que faltan definidos como NULL
.
Siguientes pasos
Consulta información sobre los precios.