Cette page décrit la taille de l'espace de stockage des entités, des clés, des propriétés et des entrées d'index dans Firestore en mode Datastore. Vous pouvez en savoir plus sur les coûts de cet espace de stockage sur la page relative aux Tarifs du mode Datastore.
Taille de la chaîne
Les tailles de chaîne sont calculées en tant que nombre d'octets encodés UTF-8 + 1.
Les éléments suivants sont stockés sous forme de chaînes :
- Clés
- Noms de genre
- Noms d'espace de noms (l'espace de noms par défaut a une taille de 0)
- Noms de propriété
- Valeurs de propriété de chaîne
Exemple :
- Le nom du genre
Task
utilise 4 octets + 1 octet, pour un total de 5 octets. - Le nom de la propriété
description
utilise 11 octets + 1 octet, pour un total de 12 octets. - Le nom de l'espace de noms
my_name_space
utilise 13 octets + 1 octet, pour un total de 14 octets.
Taille de clé
La taille d'une clé correspond à la somme des éléments suivants :
- La taille de la chaîne de l'espace de noms (si elle n'est pas dans l'espace de noms par défaut)
- La taille de la chaîne du chemin d'accès de la clé complet (les ID entiers mesurent chacun 8 octets)
- 16 octets
Pour une clé de genre Task
dans l'espace de noms par défaut avec un ID numérique et aucun ancêtre :
Task id:5730082031140864
La taille de la clé correspond à 5 + 8 + 16 = 29 octets :
- 5 octets pour le nom de genre
Task
- 8 octets pour l'ID numérique
- 16 octets pour la clé
Pour une clé de genre Task
dans l'espace de noms par défaut avec un ID de chaîne et aucun ancêtre :
Task name:my_task_id
La taille de la clé correspond à 5 + 11 + 16 = 32 octets :
- 5 octets pour le nom de genre
Task
- 11 octets pour l'ID de chaîne
my_task_id
- 16 octets pour la clé
Pour une entité Task
avec un ancêtre TaskList
dans l'espace de noms par défaut :
TaskList id:5654313976201216 > Task id:5629499534213120
L'ancêtre utilise 9 + 8 = 17 octets :
- 9 octets pour le nom de genre
TaskList
- 8 octets pour l'ID numérique
Ainsi, la taille de la clé d'une entité Task
avec un ancêtre TaskList
correspond à 17 + 5 + 8 + 16 = 46 octets :
- 17 octets pour l'ancêtre
- 5 octets pour le nom de genre
Task
- 8 octets pour l'ID numérique
- 16 octets pour la clé
Si cette entité se trouve dans l'espace de noms my_name_space
, la taille de la clé correspond à 14 + 46 = 60 octets, car le nom my_name_space
utilise 14 octets.
Taille de propriété
La taille d'une propriété correspond à la somme des éléments suivants :
- La taille de chaîne du nom de la propriété
- La taille de la valeur de la propriété
Le tableau suivant indique la taille des valeurs de propriété par type.
Type | Taille |
---|---|
Tableau | la somme des tailles de ses valeurs |
Blob | longueur en octets |
Booléen | 1 octet |
Double | 8 octets |
Entité intégrée | la taille de l'entité |
Point géographique | 16 octets |
Entier | 8 octets |
Clé | la taille de la clé |
Valeur Null | 1 octet |
Chaîne | le nombre d'octets encodés UTF-8 + 1 |
Horodatage | 8 octets |
Par exemple, une propriété nommée done
avec un type booléen utiliserait 6 octets :
- 5 octets pour le nom de la propriété
done
- 1 octet pour la valeur booléenne
Taille des entités
La taille d'une entité correspond à la somme des éléments suivants :
- La taille de la clé
- La somme des tailles de propriété
- 32 octets
Cet exemple concerne une entité de genre Task
dans l'espace de noms par défaut avec un ID numérique et aucun ancêtre :
Task id:5730082031140864 - "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Google Cloud Datastore"
La taille totale des propriétés correspond à 78 octets :
Nom et valeur de la propriété | Taille de la propriété en octets |
---|---|
"type": "Personal" |
14 5 pour le nom de la propriété + 9 pour la valeur de chaîne de la propriété |
"done": false |
6 5 pour le nom de la propriété + 1 pour la valeur booléenne de la propriété |
"priority": 1 |
17 9 pour le nom de la propriété + 8 pour la valeur entière de la propriété |
"description": "Learn Google Cloud Datastore" |
41 12 pour le nom de la propriété + 29 pour la valeur de chaîne de la propriété |
Ainsi, la taille de l'entité correspond à 29 + 78 + 32 = 139 octets :
- 29 octets pour la clé
- 78 octets pour les propriétés
- 32 octets pour une entité
Taille des entrées d'index
La taille d'une entrée d'index est calculée comme suit pour les index intégrés et composites.
Index intégrés
La taille d'une entrée d'index intégré correspond à la somme des éléments suivants :
- La taille de la clé de l'entité indexée
- La somme des noms de propriété indexés
- La somme des valeurs de propriété indexées
- La taille du nom de genre de l'entité indexée
- 32 octets
Prenons l'exemple d'une entité de genre Task
dans l'espace de noms par défaut avec un ID numérique et aucun ancêtre :
Task id:5730082031140864 - "type": "Personal" - "done": false - "priority": 1 - "description": "Learn Google Cloud Datastore"
Si done
correspond à une propriété indexée, l'entrée d'index intégré pour l'index de propriété unique done
comprend la clé, le nom et la valeur de la propriété done
, le nom du genre Task
et 32 octets pour une entrée d'index. La taille totale de cette entrée d'index correspond à 72 octets :
- 29 octets pour la clé
- 6 octets pour le nom de la propriété
done
et la valeur booléenne - 5 octets pour le nom de genre
Task
- 32 octets pour une entrée d'index
Les bases de données en mode Datastore prédéfinissent automatiquement par défaut deux index de propriété uniques pour chaque propriété de chaque genre d'entité, l'un dans l'ordre croissant et l'autre dans l'ordre décroissant. Ainsi, cette entité aurait une entrée d'index de 72 octets dans l'index de propriété unique done
par ordre croissant, et une entrée d'index de 72 octets dans l'index de propriété unique done
par ordre décroissant.
Index composites
La taille d'une entrée d'index composite correspond à la somme des éléments suivants :
- La taille de la clé de l'entité indexée
- La somme des valeurs de propriété indexées
- 32 octets
Prenons l'exemple d'une entité de genre Task
dans l'espace de noms par défaut avec un ID numérique et aucun ancêtre :
indexes: - kind: Task properties: - name: done direction: asc - name: priority direction: asc
Prenons l'exemple d'un index composite qui utilise les propriétés done
et priority
(dans l'ordre croissant) :
La taille totale de l'entrée d'index dans cet index correspond à 70 octets :
- 29 octets pour la clé
- 1 octet pour la valeur booléenne de la propriété
done
- 8 octets pour la valeur entière de la propriété
priority
- 32 octets pour une entrée d'index
Si vous ne souhaitez pas que Firestore en mode Datastore gère un index pour une propriété, excluez la propriété de vos index. Notez que le fait d'exclure une propriété entraîne sa suppression de tous les index composites.
Étapes suivantes
- Découvrez les tarifs du mode Datastore.
- Découvrez les index du mode Datastore.