Calculs de la taille des espaces de stockage

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

Vous pouvez en savoir plus sur les coûts de cet espace de stockage à la page Tarifs 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 :

  • ID de collection
  • ID de document de chaîne
  • Noms de documents
  • Noms de champs
  • Valeurs des champs de chaîne

Exemple :

  • L'ID de 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'un ID de document

La taille d'un ID de document est soit la taille de chaîne pour un ID de type chaîne, soit 8 octets pour un ID de type entier.

Taille d'un nom de document

La taille d'un nom de document est la somme de :

  • La taille de chaque ID de collection et ID de document dans le chemin d'accès au document
  • 16 octets supplémentaires

Pour un document de la sous-collection users/jeff/tasks avec un ID de document de chaîne de my_task_id, la taille du nom de document est 6 + 5 + 6 + 11 + 16 = 44 octets :

  • 6 octets pour l'ID de collection users
  • 5 octets pour l'ID de document jeff
  • 6 octets pour l'ID de collection tasks
  • 11 octets pour l'ID de document my_task_id
  • 16 octets supplémentaires

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
Octets Longueur en octets
Date et heure 8 octets
Nombre à virgule flottante 8 octets
Point géographique 16 octets
Entier 8 octets
Plan Taille du plan, calculée de la même manière que la taille du document
Vide 1 octet
Référence La taille du nom de document
Chaîne de texte 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 sous-collection users/jeff/tasks avec un ID de document de chaîne de my_task_id :

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

La taille totale des champs est de 71 octets :

Nom et valeur du champ Taille du champ en octets
"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 + 8 pour la valeur de type entier 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 44 + 71 + 32 = 147 octets :

  • 44 octets pour le nom du document
  • 71 octets pour les champs
  • 32 octets supplémentaires

Taille des entrées d'index

Les tailles des entrées d'index sont calculées comme suit pour les index à champ unique et composites.

Taille d'entrée d'index à champ unique

La taille d'une entrée d'index à champ unique varie selon que l'index s'applique à une collection ou à un groupe de collections.

Champ d'application de la collection

La taille d'une entrée dans un index à champ unique avec un champ d'application de collection correspond à la somme de :

Prenons l'exemple d'un document de la sous-collection users/jeff/tasks avec un ID de document de chaîne de my_task_id :

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

Pour un index à champ unique avec un champ d'application de collection qui indexe le champ done, la taille totale de l'entrée dans cet index est de 109 octets :

  • 44 octets pour le nom du document users/jeff/tasks/my_task_id
  • 27 octets pour le nom de document du document parent users/jeff
  • 5 octets pour le nom du champ done
  • 1 octet pour la valeur du champ booléen
  • 32 octets supplémentaires

Champ d'application du groupe de collections

La taille d'une entrée dans un index à champ unique avec un champ d'application de groupe de collections est la somme de :

Prenons l'exemple d'un document de la sous-collection users/jeff/tasks avec un ID de document de chaîne de my_task_id :

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

Pour un index à champ unique avec un champ d'application de groupe de collections qui indexe le champ done, la taille totale de l'entrée dans cet index est de 98 octets :

  • 44 octets pour le nom du document users/jeff/tasks/my_task_id
  • 5 octets pour le nom du champ done
  • 1 octet pour la valeur du champ booléen
  • 48 octets supplémentaires

Taille de l'entrée de l'index composite

La taille d'une entrée dans un index composite varie selon que l'index s'applique à une collection ou à un groupe de collections.

Champ d'application de la collection

La taille d'une entrée d'index dans un index composite avec un champ d'application de collection correspond à la somme de :

Prenons l'exemple d'un document de la sous-collection users/jeff/tasks avec un ID de document de chaîne de my_task_id :

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

Pour un index composite avec un champ d'application de collection qui indexe les champs done et priority (tous deux ascendants), la taille totale de l'entrée dans cet index est de 112 octets :

  • 44 octets pour le nom du document users/jeff/tasks/my_task_id
  • 27 octets pour le nom de document du document parent users/jeff
  • 1 octet pour la valeur du champ booléen
  • 8 octets pour la valeur du champ de type entier
  • 32 octets supplémentaires

Champ d'application du groupe de collections

La taille d'une entrée d'index dans un index composite avec un champ d'application de groupe de collections correspond à la somme de :

Prenons l'exemple d'un document de la sous-collection users/jeff/tasks avec un ID de document de chaîne de my_task_id :

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

Pour un index composite avec un champ d'application de groupe de collections qui indexe les champs done et priority (tous deux ascendants), la taille totale de l'entrée d'index dans cet index est de 85 octets :

  • 44 octets pour le nom du document users/jeff/tasks/my_task_id
  • 1 octet pour la valeur du champ booléen
  • 8 octets pour la valeur du champ de type entier
  • 32 octets supplémentaires

Étape suivante

En savoir plus sur les tarifs de Firestore.