Calcoli dello spazio di archiviazione

Questa pagina descrive le dimensioni di archiviazione di entità, chiavi, proprietà e voci di indice in Firestore in modalità Datastore. Puoi scoprire i costi di questo di archiviazione ai prezzi in modalità Datastore.

Dimensioni stringa

Le dimensioni delle stringhe vengono calcolate come il numero Byte con codifica UTF-8 + 1.

I seguenti elementi vengono memorizzati come stringhe:

  • Chiavi
  • Nomi dei tipi
  • Nomi dello spazio dei nomi (lo spazio dei nomi predefinito ha una dimensione 0)
  • Nomi proprietà
  • Valori delle proprietà stringa

Ad esempio:

  • Il nome del tipo Task utilizza 4 byte + 1 byte, per un totale di 5 byte.
  • Il nome della proprietà description utilizza 11 byte + 1 byte, per per un totale di 12 byte.
  • Il nome dello spazio dei nomi my_name_space utilizza 13 byte + 1 byte, per un totale di 14 byte.

Dimensione chiave

La dimensione di una chiave è la somma

  • La dimensione della stringa dello spazio dei nomi (se non è compresa nello spazio dei nomi predefinito)
  • La dimensione completa della stringa del percorso della chiave (gli ID interi sono di 8 byte ciascuno)
  • 16 byte

Per una chiave di tipo Task nello spazio dei nomi predefinito con un ID numerico e nessuna predecessore:

Task id:5730082031140864

La dimensione della chiave è 5 + 8 + 16 = 29 byte:

  • 5 byte per il nome del tipo Task
  • 8 byte per l'ID numerico
  • 16 byte per una chiave

Per una chiave di tipo Task nello spazio dei nomi predefinito con un ID stringa e nessun antecessore:

Task name:my_task_id

La dimensione della chiave è 5 + 11 + 16 = 32 byte:

  • 5 byte per il nome del tipo Task
  • 11 byte per l'ID stringa my_task_id
  • 16 byte per una chiave

Per un'entità Task con un predecessore TaskList nello spazio dei nomi predefinito:

TaskList id:5654313976201216 > Task id:5629499534213120

Il predecessore utilizza 9 + 8 = 17 byte:

  • 9 byte per il nome del tipo TaskList
  • 8 byte per l'ID numerico

Quindi, la dimensione della chiave di un'entità Task con un predecessore TaskList utilizza 17 + 5 + 8 + 16 = 46 byte:

  • 17 byte per il predecessore
  • 5 byte per il nome del tipo Task
  • 8 byte per l'ID numerico
  • 16 byte per una chiave

Se questa entità si trova nello spazio dei nomi my_name_space, la dimensione della chiave è 14 + 46 = 60 byte, perché il nome my_name_space utilizza 14 byte.

Dimensioni della proprietà

La dimensione di una proprietà è la somma

  • Le dimensioni della stringa del nome della proprietà
  • Le dimensioni del valore della proprietà

Di seguito sono riportate le dimensioni dei valori delle proprietà per tipo.

Tipo Dimensioni
Array la somma delle dimensioni dei suoi valori
Blob lunghezza byte
Booleano 1 byte
Doppio 8 byte
Entità incorporata le dimensioni dell'entità
Punto geografico 16 byte
Numero intero 8 byte
Chiave la dimensione della chiave
Null 1 byte
Stringa numero di byte codificati UTF-8 + 1
Timestamp 8 byte

Ad esempio, una proprietà denominata done con un tipo di booleano utilizzerebbe 6 byte:

  • 5 byte per il nome della proprietà done
  • 1 byte per il valore booleano

Dimensioni entità

La dimensione di un'entità è la somma di

Questo esempio si riferisce a un'entità di tipo Task nello spazio dei nomi predefinito con un ID numerico e nessun predecessore:

Task id:5730082031140864
 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Google Cloud Datastore"

La dimensione totale delle proprietà è di 78 byte:

Nome e valore della proprietà Dimensioni della proprietà in byte
"type": "Personal" 14
5 per il nome della proprietà + 9 per il valore della stringa della proprietà
"done": false 6
5 per il nome della proprietà + 1 per il valore booleano della proprietà
"priority": 1 17
9 per il nome della proprietà + 8 per il valore intero della proprietà
"description": "Learn Google Cloud Datastore" 41
12 per il nome della proprietà + 29 per il valore della stringa della proprietà

Pertanto, le dimensioni dell'entità sono 29 + 78 + 32 = 139 byte:

  • 29 byte per la chiave
  • 78 byte per le proprietà
  • 32 byte per un'entità

Dimensioni voce indice

La dimensione di una voce di indice viene calcolata come segue per gli indici integrati e composti.

Indici integrati

La dimensione di una voce di indice integrato è la somma di:

Ad esempio, prendi un'entità di tipo Task nello spazio dei nomi predefinito con un ID numerico e nessun predecessore:

Task id:5730082031140864
 - "type": "Personal"
 - "done": false
 - "priority": 1
 - "description": "Learn Google Cloud Datastore"

Se done è una proprietà indicizzata, la voce indice integrato della singola L'indice della proprietà done è composto da una chiave, dal nome e dal valore della proprietà done, il nome del tipo Task e 32 byte per una voce di indice. Le dimensioni totali di questo di indice è di 72 byte:

  • 29 per la chiave
  • 6 per il nome della proprietà done e il valore booleano
  • 5 per il nome del tipo Task
  • 32 per una voce di indice

Per impostazione predefinita, i database in modalità Datastore predefiniscono automaticamente due indici di proprietà di ogni proprietà di ciascun tipo di entità, uno in ordine crescente e uno in ordine decrescente. Questa entità avrebbe una voce di indice di dimensione 72. byte nell'indice della singola proprietà done in ordine crescente e avrebbe ricevuto una voce di indice di dimensione 72 byte nell'indice della singola proprietà done in in ordine decrescente.

Indici composti

La dimensione di una voce di indice composto è la somma di:

Ad esempio, prendi un'entità di tipo Task nello spazio dei nomi predefinito con un ID numerico e nessun predecessore:

indexes:
- kind: Task
  properties:
  - name: done
    direction: asc
  - name: priority
    direction: asc

Considera un indice composto che utilizza done e Proprietà priority (entrambe crescenti):

La dimensione totale della voce di indice in questo indice è di 70 byte:

  • 29 per la chiave
  • 1 per il valore booleano della proprietà done
  • 8 per il valore intero della proprietà priority
  • 32 per una voce di indice

Se non vuoi che Firestore in modalità Datastore gestisca un indice per una proprietà, escludi la proprietà dagli indici. Tieni presente che l'esclusione di una proprietà lo rimuove da tutti gli indici composti.

Passaggi successivi