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 |
Documentation de 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 :
- La taille du nom de document
- La somme des tailles de chaîne de chaque nom de champ
- La somme de la taille de chaque valeur de champ
- 32 octets supplémentaires
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 :
- La taille du nom de document du document indexé
- La taille du nom de document du document parent du document indexé
- La taille de la chaîne du nom du champ indexé
- La taille de la valeur de champ indexée
- 32 octets supplémentaires
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 :
- La taille du nom de document du document indexé
- La taille de la chaîne du nom du champ indexé
- La taille de la valeur de champ indexée
- 48 octets supplémentaires
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 :
- La taille du nom de document du document indexé
- La taille du nom de document du document parent du document indexé
- La somme des valeurs de champ indexées
- 32 octets supplémentaires
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 :
- La taille du nom de document du document indexé
- La somme des valeurs de champ indexées
- 32 octets supplémentaires
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