Cálculos de tamaño de almacenamiento

En esta página, se describe el tamaño de almacenamiento de documentos, campos y entradas de índices en Firestore con compatibilidad con MongoDB.

Puedes obtener más información sobre los costos de este almacenamiento en Precios de la edición Enterprise de Firestore.

Tamaño de una string

Los tamaños de strings se calculan como la cantidad de bytes con codificación UTF-8 más 1.

Los siguientes se almacenan como strings:

  • Nombre de la colección
  • Nombres de campos
  • Valores de campo 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, para un total de 12 bytes.

Tamaño del valor de campo

La siguiente tabla muestra el tamaño de los valores de campo por tipo.

Tipo Tamaño
Array La suma de los tamaños de sus valores
Booleano 1 byte
Datos binarios Longitud de bytes + 1 para un subtipo no genérico (no 0)
Fecha 8 bytes
Doble 8 bytes
Double128 16 bytes
Número entero de 32 bits 4 bytes
Número 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 en el objeto incorporado
Clave mín. 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
String Cantidad de bytes con codificación 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 un documento

El tamaño de un documento es la suma de lo siguiente:

Este ejemplo corresponde a un documento en 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:

Valor y nombre 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 string 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 de número entero de 32 bits del campo
"description": "Learn Cloud Firestore" 34
12 para el nombre del campo + 22 para el valor de string del campo

Por lo tanto, el tamaño del documento es de 6 + 78 + 48 = 132 bytes:

  • 6 para el nombre de la colección
  • 78 bytes para los campos
  • 48 bytes adicionales

Tamaño de una entrada del índice

El tamaño de una entrada de índice en un índice es la suma de lo siguiente:

Considera un documento en la colección tasks:

{
  "_id": "my_task_id",
  "type": "Personal",
  "done": false,
  "priority": 1,
  "description": "Learn Cloud Firestore"
}

En un índice en los campos done y priority (ambos ascendentes), el tamaño total de la entrada 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 de campo booleano
  • 4 bytes para el valor de campo de número 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 ausentes establecidos en NULL.

¿Qué sigue?

Obtén información sobre los precios de la edición Enterprise de Firestore.