Cálculos de tamaño de almacenamiento

Esta página describe el tamaño de almacenamiento de documentos, nombres de documentos, campos y entradas de índices en Cloud Firestore.

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

Tamaño de una string

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

Los siguientes se almacenan como strings:

  • Nombres de documentos
  • ID de colección
  • Nombres de campos
  • Valores de campo de string

Por ejemplo:

  • El ID de la colección Task usa 4 bytes + 1 byte, lo que suma 5 bytes.
  • El nombre del campo description usa 11 bytes + 1 byte, lo que suma 12 bytes.

Tamaño de un nombre de documento

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

  • El tamaño de string completo del nombre del documento (los ID de números enteros usan 8 bytes cada uno)
  • 16 bytes adicionales

En el caso de un documento en una colección llamada Task con un ID numérico:

Task id:5730082031140864

El tamaño es de 5 + 8 + 16 = 29 bytes:

  • 5 bytes para el ID de la colección Task
  • 8 bytes para el ID numérico
  • 16 bytes adicionales

En el caso de un documento en una colección llamada Task con un ID de string:

Task name:my_task_id

El tamaño es de 5 + 11 + 16 = 32 bytes:

  • 5 bytes para el ID de la colección Task
  • 11 bytes para el ID de string my_task_id
  • 16 bytes adicionales

Tamaño de un campo

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

  • El tamaño de string del nombre del campo
  • El tamaño del valor del campo

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

Tipo Tamaño
Matriz La suma de los tamaños de sus valores
Booleano 1 byte
Bytes Longitud de bytes
Fecha y hora 8 bytes
Número de coma flotante 8 bytes
Punto geográfico 16 bytes
Entero 8 bytes
Mapa El tamaño del mapa, calculado de la misma manera que el tamaño del documento
Nulo 1 byte
Referencia El tamaño del nombre del documento
String de texto 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 una colección llamada Task con un ID numérico:

Task id:5730082031140864
 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

El tamaño total de los campos es de 70 bytes:

Valor y nombre del campo Tamaño del campo en bytes
"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 + 8 para el valor de número entero del campo
"description": "Learn Cloud Firestore" 33
12 para el nombre del campo + 21 para el valor de string del campo

Por lo tanto, el tamaño del documento es de 29 + 70 + 32 = 131 bytes:

  • 29 bytes para el nombre del documento
  • 70 bytes para los campos
  • 32 bytes adicionales

Tamaño de una entrada del índice

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

  • El tamaño del nombre del documento del documento indexado
  • La suma de los tamaños del campo indexados
  • El tamaño del ID de colección del documento indexado si el índice es automático (no se aplica a los índices compuestos)
  • 32 bytes adicionales

Este es el mismo patrón que se usa para el tamaño de un documento, excepto que, en lugar de incluir todos los campos del documento, solo se almacenan aquellos campos que necesita el índice. Además, el tamaño de una entrada del índice nunca excederá los 1,500 bytes.

Por ejemplo, con el mismo documento que el ejemplo anterior, ocurre lo siguiente:

Task id:5730082031140864
 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Cloud Firestore"

Si done es un campo indexado, la entrada automática del índice para el campo único done consta del nombre del documento, el valor y el nombre del campo done, el ID de la colección Task y 32 bytes para una entrada del índice. El tamaño total de esta entrada del índice es de 72 bytes:

  • 29 bytes para el nombre del documento
  • 6 bytes para el nombre del campo done y su valor booleano
  • 5 bytes para el ID de la colección Task
  • 32 bytes adicionales

Según la configuración predeterminada, Cloud Firestore predefine dos índices de campos únicos automáticamente para cada campo de cada documento, uno en orden ascendente y otro en orden descendente. Por lo tanto, este documento tendría una entrada del índice de 72 bytes en el índice de campo único done en orden ascendente, y tendría una entrada del índice de 72 bytes en el índice de campo único done en orden descendente.

Con el mismo documento, considera un índice compuesto que use los campos done y priority (ambos ascendentes). El tamaño total de la entrada del índice en este índice es de 84 bytes:

  • 29 bytes para el nombre del documento
  • 6 bytes para el nombre del campo done y su valor booleano
  • 17 bytes para el nombre del campo priority y su valor de número entero
  • 32 bytes adicionales

¿Qué sigue?

Obtén información sobre los precios de Cloud Firestore.

Enviar comentarios sobre...

Si necesitas ayuda, visita nuestra página de asistencia.