Speichergröße

Auf dieser Seite wird die Speichergröße von Dokumenten, Feldern und Indexeinträgen in Cloud Firestore beschrieben.

Informationen zu den Kosten für diesen Speicher finden Sie auf der Seite Preise.

Stringgröße

Die Größe der Strings berechnet sich aus der Anzahl der UTF-8-codierten Byte + 1.

Die nachfolgenden Elemente werden als String gespeichert:

  • Name der Sammlung
  • Feldnamen
  • Stringfeldwerte (einschließlich _id)

Beispiel:

  • Der Sammlungsname tasks verwendet 5 Byte + 1 Byte, also insgesamt 6 Byte.
  • Der Feldname description verwendet 11 Byte + 1 Byte, also insgesamt 12 Byte.

Feldwertgröße

Die folgende Tabelle zeigt die Größe der Feldwerte nach Typ an.

Typ Größe
Array Die Summe der Wertgrößen
Boolean 1 Byte
Binärdaten Bytelänge + 1 für einen nicht generischen Untertyp (nicht 0)
Datum 8 Byte
Doppelt 8 Byte
Double128 16 Byte
32-Bit-Ganzzahl Byte
64-Bit-Ganzzahl (lang) 8 Byte
Objekt Die Summe der Stringgrößen der einzelnen Feldnamen und der Größen der einzelnen Feldwerte im eingebetteten Objekt
Min-Schlüssel 1 Byte
Max-Taste 1 Byte
Null 1 Byte
Regulärer Ausdruck (Musterlänge + 1) + (Optionslänge + 1)
Zeitstempel 8 Byte
String Anzahl der UTF-8-kodierten Byte + 1

Ein boolesches Feld mit dem Namen done würde beispielsweise 6 Byte verwenden:

  • 5 Byte für den Feldnamen done
  • 1 Byte für den booleschen Wert

Dokumentgröße

Die Größe eines Dokuments ist die Summe aus folgenden Komponenten:

  • Die Stringgröße des Sammlungsnamens
  • Die Summe der Stringgröße jedes Feldnamens (außer _id)
  • Die Summe der Größe jedes Feldwerts (einschließlich _id)
  • 48 zusätzliche Byte

Dieses Beispiel bezieht sich auf ein Dokument in der Sammlung tasks:

{
  "_id": "my_task_id",
  "type": "Personal",
  "done": false,
  "priority": 1,
  "description": "Learn Cloud Firestore"
}

Die Gesamtgröße der Felder beträgt 78 Byte:

Feldname und -wert Feldgröße in Byte
"_id": "my_task_id" 11 für den Stringwert des Felds
"type": "Personal" 14
5 für den Feldnamen + 9 für den Stringwert des Felds
"done": false 6
5 für den Feldnamen + 1 für den booleschen Wert des Felds
"priority": 1 17
9 für den Feldnamen + 4 für den 32-Bit-Ganzzahlwert des Felds
"description": "Learn Cloud Firestore" 34
12 für den Feldnamen + 22 für den Stringwert des Felds

Die Dokumentgröße beträgt also 6 + 78 + 48 = 132 Byte:

  • 6 für den Namen der Sammlung
  • 78 Byte für die Felder
  • 48 zusätzliche Byte

Größe des Indexeintrags

Die Größe eines Indexeintrags in einem Index ist die Summe aus:

  • Die Stringgröße des Sammlungsnamens
  • Die Größe des Feldwerts _id
  • Summe der indexierten Feldwerte
  • 48 zusätzliche Byte

Betrachten Sie ein Dokument in der Sammlung tasks:

{
  "_id": "my_task_id",
  "type": "Personal",
  "done": false,
  "priority": 1,
  "description": "Learn Cloud Firestore"
}

Bei einem Index für die Felder done und priority (beide aufsteigend) beträgt die Gesamtgröße des Indexeintrags in diesem Index 70 Byte:

  • 6 Byte für den Sammlungsnamen tasks
  • 11 Byte für den Feldwert _id
  • 1 Byte für den booleschen Feldwert
  • 4 Byte für den 32-Bit-Ganzzahlfeldwert
  • 48 zusätzliche Byte

Wenn ein Dokument bei dünnbesetzten Indexen keines der Felder enthält, wird kein Indexeintrag erstellt. Wenn ein Dokument mindestens eines der indexierten Felder enthält, wird ein Indexeintrag erstellt, wobei nicht vorhandene indexierte Felder auf NULL gesetzt werden.

Größe des Änderungsstream-Ereigniseintrags

Die Größe eines Änderungsstream-Ereignisses ist die Summe aus:

  • Die Summe der Stringgröße des Sammlungsnamens (x2).
  • Für Einfüge- und Aktualisierungsereignisse für ein Dokument:
    • Die Summe der Stringgröße jedes Feldnamens in der fullDocument oder der updateDescription (außer _id).
    • Die Summe der Größe jedes Feldwerts in fullDocument oder updateDescription. (einschließlich _id).
  • Falls auf Transaktionen mit mehreren Dokumenten anwendbar, zusätzliche 24 Byte für lsid und txnNumber.
  • 92 zusätzliche Byte

Hier ein Beispiel für ein Einfügeereignis für ein Dokument in der Sammlung „tasks“:

{
  "_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"
  },
}

Die Gesamtgröße des Änderungsstream-Ereignisses beträgt 149 Byte:

  • 92 Byte für allgemeine Metadaten
  • 12 Byte basierend auf dem Sammlungsnamen tasks (6 Byte) × 2
  • 11 Byte für den Feldwert _id
  • 12 Byte für den Feldnamen description
  • 22 Byte für den Feldwert description

Größe des Indexeintrags für die Textsuche

Die Größe eines Indexeintrags für die Textsuche in einem Index ist die Summe aus:

  • Die Stringgröße des Sammlungsnamens
  • Die Größe des _id-Werts
  • Die Summe der Byte aus indexierten Feldwerten (x2)
  • 48 zusätzliche Byte für allgemeine Metadaten

Hier ein Beispiel für ein Einfügeereignis für ein Dokument mit _id my_task_id in der Sammlung tasks:

{
    "_id": "my_place",
     "type": "Restaurant",
     "visited": false,
     "priority": 1,
     "location": GeoPoint(longitude, latitude)
}

Die Gesamtgröße eines Textsuchindexeintrags in description beträgt 105 Byte, basierend auf:

  • 6 Byte für den Sammlungsnamen tasks
  • 11 Byte für den Wert _id
  • 44 Byte, basierend auf 22 Byte für das Feld description × 2
  • 48 zusätzliche Byte für allgemeine Metadaten

Größe des Geodatenindexeintrags

Die Größe eines Geodatenindexeintrags in einem Index ist die Summe aus:

  • Die Stringgröße des Sammlungsnamens
  • Die Größe des _id-Werts
  • 128 Byte für jeden indexierten Geopunkt
  • 48 zusätzliche Byte für allgemeine Metadaten

Hier ein Beispiel für ein Einfügeereignis für ein Dokument mit _id my_place in der Sammlung places:

{
    "_id": "my_place",
     "type": "Restaurant",
     "visited": false,
     "priority": 1,
     "location": GeoPoint(longitude, latitude)
}

Die Gesamtgröße eines Geodatenindexeintrags in location beträgt 192 Byte, basierend auf:

  • 7 Byte für den Sammlungsnamen places
  • 9 Byte für die Dokument-ID
  • 128 Byte für das Feld location
  • 48 zusätzliche Byte für allgemeine Metadaten

Nächste Schritte

Informationen zu Preisen.