Questa pagina descrive le dimensioni di archiviazione di documenti, campi e voci di indice in Cloud Firestore.
Puoi scoprire di più sui costi di questo spazio di archiviazione nella pagina Prezzi.
Dimensione stringa
Le dimensioni delle stringhe vengono calcolate come il numero di byte codificati in UTF-8 + 1.
I seguenti elementi vengono memorizzati come stringhe:
- Nome raccolta
- Nomi dei campi
- Valori dei campi stringa (incluso
_id)
Ad esempio:
- Il nome della raccolta
tasksutilizza 5 byte + 1 byte, per un totale di 6 byte. - Il nome del campo
descriptionutilizza 11 byte + 1 byte, per un totale di 12 byte.
Dimensione del valore del campo
La tabella seguente mostra le dimensioni dei valori dei campi per tipo.
| Tipo | Dimensioni |
|---|---|
| Array | La somma delle dimensioni dei suoi valori |
| Booleano | 1 byte |
| Dati binari | Lunghezza in byte + 1 per un sottotipo non generico (non 0) |
| Data | 8 byte |
| Doppio | 8 byte |
| Double128 | 16 byte |
| Intero a 32 bit | 4 byte |
| Intero a 64 bit (long) | 8 byte |
| Oggetto | La somma delle dimensioni delle stringhe di ogni nome di campo e delle dimensioni di ogni valore di campo nell'oggetto incorporato |
| Min Key | 1 byte |
| Max Key | 1 byte |
| Null | 1 byte |
| Espressione regolare | (Lunghezza pattern + 1) + (Lunghezza opzioni + 1) |
| Timestamp | 8 byte |
| Stringa | Numero di byte codificati in UTF-8 + 1 |
Ad esempio, un campo booleano denominato done utilizzerebbe 6 byte:
- 5 byte per il nome del campo
done - 1 byte per il valore booleano
Dimensioni del documento
Le dimensioni di un documento sono la somma di:
- La dimensione della stringa del nome della raccolta
- La somma della dimensione della stringa di ogni nome di campo (tranne
_id) - La somma delle dimensioni di ogni valore di campo (incluso
_id) - 48 byte aggiuntivi
Questo esempio riguarda un documento nella raccolta tasks:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
La dimensione totale dei campi è di 78 byte:
| Nome e valore del campo | Dimensioni del campo in byte |
|---|---|
"_id": "my_task_id" |
11 per il valore stringa del campo |
"type": "Personal" |
14 5 per il nome del campo + 9 per il valore stringa del campo |
"done": false |
6 5 per il nome del campo + 1 per il valore booleano del campo |
"priority": 1 |
17 9 per il nome del campo + 4 per il valore intero a 32 bit del campo |
"description": "Learn Cloud Firestore" |
34 12 per il nome del campo + 22 per il valore stringa del campo |
Pertanto, le dimensioni del documento sono 6 + 78 + 48 = 132 byte:
- 6 per il nome della raccolta
- 78 byte per i campi
- 48 byte aggiuntivi
Dimensioni voce di indice
La dimensione di una voce di indice in un indice è la somma di:
- La dimensione della stringa del nome della raccolta
- La dimensione del valore del campo
_id - La somma dei valori dei campi indicizzati
- 48 byte aggiuntivi
Prendi in considerazione un documento nella raccolta tasks:
{
"_id": "my_task_id",
"type": "Personal",
"done": false,
"priority": 1,
"description": "Learn Cloud Firestore"
}
Per un indice sui campi done e
priority (entrambi in ordine crescente), la dimensione totale della voce di indice in questo
indice è di 70 byte:
- 6 byte per il nome della raccolta
tasks - 11 byte per il valore del campo
_id - 1 byte per il valore del campo booleano
- 4 byte per il valore del campo intero a 32 bit
- 48 byte aggiuntivi
Per gli indici sparsi, se un documento non include nessuno dei campi,
non viene creata alcuna voce di indice. Se un documento contiene almeno uno dei campi indicizzati, viene creata una voce di indice con i campi indicizzati assenti impostati su NULL.
Modificare le dimensioni delle voci degli eventi dello stream
La dimensione di un evento di stream delle modifiche è la somma di:
- La somma delle dimensioni della stringa del nome della raccolta (x2).
- Per gli eventi di inserimento e aggiornamento di un documento:
- La somma delle dimensioni della stringa di ogni nome di campo in
fullDocumentoupdateDescription(tranne_id). - La somma delle dimensioni di ogni valore di campo in
fullDocumentoupdateDescription. (inclusi_id).
- La somma delle dimensioni della stringa di ogni nome di campo in
- Se applicabile alle transazioni multi-documento, 24 byte aggiuntivi per
lsidetxnNumber. - 92 byte aggiuntivi
Considera un esempio di evento di inserimento per un documento nella raccolta di attività:
{
"_id": { <Resume Token> },
"operationType": "insert",
"clusterTime": <Timestamp>,
"wallTime": <ISODate>,
"ns": {
"db": "db",
"coll": "tasks"
},
"documentKey": {
"_id": "my_task_id"
},
"fullDocument": {
"_id": "my_task_id",
"description": "Learn Cloud Firestore"
},
}
La dimensione totale dell'evento di flusso delle modifiche è di 149 byte:
- 92 byte per i metadati generali
- 12 byte in base al nome della raccolta
tasks(6 byte) * 2 - 11 byte per il valore del campo
_id - 12 byte per il nome del campo
description - 22 byte per il valore del campo
description
Dimensione della voce di indice di ricerca nel testo
La dimensione di una voce di indice di ricerca di testo in un indice è la somma di:
- La dimensione della stringa del nome della raccolta
- La dimensione del valore
_id - La somma dei byte dei valori dei campi indicizzati (x2)
- 48 byte aggiuntivi per i metadati generali
Considera un esempio di evento di inserimento per un documento con _id my_task_id
nella raccolta tasks:
{ "_id": "my_place", "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
La dimensione totale di una voce di indice di ricerca di testo su description è di 105 byte
in base a:
- 6 byte per il nome della raccolta
tasks - 11 byte per il valore
_id - 44 byte, in base a 22 byte per il campo
descriptionx2 - 48 byte aggiuntivi per i metadati generali
Dimensioni della voce dell'indice geospaziale
La dimensione di una voce di indice geospaziale in un indice è la somma di:
- La dimensione della stringa del nome della raccolta
- La dimensione del valore
_id - 128 byte per ogni punto geografico indicizzato
- 48 byte aggiuntivi per i metadati generali
Considera un esempio di evento di inserimento per un documento con _id my_place
nella raccolta places:
{ "_id": "my_place", "type": "Restaurant", "visited": false, "priority": 1, "location": GeoPoint(longitude, latitude) }
La dimensione totale di una voce di indice geospaziale su location è
192 byte in base a:
- 7 byte per il nome della raccolta
places - 9 byte per l'ID documento
- 128 byte per il campo
location - 48 byte aggiuntivi per i metadati generali
Passaggi successivi
Scopri di più sui prezzi.