Calculs de la taille des espaces de stockage

Cette page décrit la taille de stockage des documents, des champs et des entrées d'index dans Firestore compatible avec MongoDB.

Vous pouvez en savoir plus sur les coûts de cet espace de stockage sur la page Tarifs de l'édition Enterprise de Firestore.

Taille de chaîne

Les tailles de chaîne correspondent au nombre d'octets encodés en UTF-8 + 1.

Les éléments suivants sont stockés sous forme de chaînes :

  • Nom de la collection
  • Noms des champs
  • Valeurs des champs de chaîne (y compris _id)

Exemple :

  • Le nom de la collection tasks utilise 5 octets + 1 octet, soit un total de 6 octets.
  • Le nom de champ description utilise 11 octets + 1 octet, soit un total de 12 octets.

Taille d'une valeur de champ

Le tableau suivant indique la taille des valeurs de champ par type.

Type Taille
Tableau La somme des tailles de ses valeurs
Booléen 1 octet
Données binaires Longueur en octets + 1 pour un sous-type non générique (non nul)
Date 8 octets
Double 8 octets
Double128 16 octets
Entier de 32 bits 4 octets
Entier de 64 bits (long) 8 octets
Objet La somme des tailles de chaîne de chaque nom de champ et des tailles de chaque valeur de champ dans l'objet intégré
Clé min 1 octet
Clé Max 1 octet
Vide 1 octet
Expression régulière (Longueur du modèle + 1) + (Longueur des options + 1)
Horodatage 8 octets
Chaîne Nombre d'octets encodés UTF-8 + 1

Par exemple, un champ booléen nommé done utiliserait 6 octets :

  • 5 octets pour le nom du champ done
  • 1 octet pour la valeur booléenne

Taille d'un document

La taille d'un document est la somme de :

Cet exemple concerne un document de la collection tasks :

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

La taille totale des champs est de 78 octets :

Nom et valeur du champ Taille du champ en octets
"_id": "my_task_id" 11 pour la valeur de type chaîne du champ
"type": "Personal" 14
5 pour le nom du champ + 9 pour la valeur de la chaîne du champ
"done": false 6
5 pour le nom du champ + 1 pour la valeur booléenne du champ
"priority": 1 17
9 pour le nom du champ + 4 pour la valeur entière 32 bits du champ
"description": "Learn Cloud Firestore" 34
12 pour le nom du champ + 22 pour la valeur de type chaîne du champ

La taille du document est donc de 6 + 78 + 48 = 132 octets :

  • 6 pour le nom de la collection
  • 78 octets pour les champs
  • 48 octets supplémentaires

Taille des entrées d'index

La taille d'une entrée d'index dans un index correspond à la somme des éléments suivants :

Prenons l'exemple d'un document de la collection tasks :

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

Pour un index sur les champs done et priority (tous deux ascendants), la taille totale de l'entrée d'index dans cet index est de 70 octets :

  • 6 octets pour le nom de la collection tasks
  • 11 octets pour la valeur du champ _id
  • 1 octet pour la valeur du champ booléen
  • 4 octets pour la valeur du champ de type entier 32 bits
  • 48 octets supplémentaires

Pour les index à faible densité, si un document n'inclut aucun des champs, aucune entrée d'index n'est créée. Si un document contient au moins l'un des champs indexés, une entrée d'index est créée avec les champs indexés absents définis sur NULL.

Étapes suivantes

En savoir plus sur les tarifs de l'édition Enterprise de Firestore