Latenzprobleme beheben

Auf dieser Seite wird beschrieben, wie Sie Latenzprobleme mit Firestore beheben.

Latenz

In der folgenden Tabelle werden mögliche Ursachen für erhöhte Latenz beschrieben:

Latenzursache Arten von betroffenen Vorgängen Lösung
Kontinuierlicher Traffic, der die Regel 500-50-5 überschreitet. Lese-/Schreibzugriff

Für schnelle Trafficanstiege versucht Firestore automatisch, die erhöhte Nachfrage zu erfüllen. Wenn Firestore skaliert, verringert sich die Latenz.

Hotspots (hohe Lese-, Schreib- und Löschraten für einen kleinen Dokumentbereich) beschränken die Skalierbarkeit von Firestore. Überprüfen Sie das Skalierbares Design und ermitteln Sie Hotspots in Ihrer Anwendung.

Konflikt, entweder durch zu häufiges Aktualisieren eines einzelnen Dokuments oder durch Transaktionen. Lese-/Schreibzugriff

Reduzieren Sie die Schreibrate für einzelne Dokumente.

Lesen Sie mehr über die Datenkonflikte in Transaktionen und die Verwendung von Transaktionen.

Anfragen für langsame Join-Vorgänge. read Beispielsweise können Anfragen mit mehreren Gleichheitsfiltern (==), die jedoch nicht von zusammengesetzten Indexen unterstützt werden, zu langsamen Join-Anfragen führen. Um die Leistung zu verbessern, fügen Sie zusammengesetzte Indexe für diese Anfragen hinzu, siehe Grund 3 unter Warum ist meine Firestore-Anfrage langsam?
Große Lesevorgänge, die viele Dokumente zurückgeben. read Verwenden Sie die Paginierung zum Aufteilen großer Lesevorgänge.
Zu viele kürzliche Löschvorgänge. read
Dies wirkt sich erheblich auf Vorgänge aus, die Sammlungen in Datenbanken auflisten.
Wenn die Latenz durch zu viele kürzliche Löschvorgänge verursacht wird, sollte sich das Problem nach einiger Zeit von selbst beheben. Tritt das Problem weiter auf, wenden Sie sich an den Support.
Listener zu schnell hinzufügen und entfernen. Echtzeit-Listener-Anfragen Weitere Informationen finden Sie unter Best Practices für Echtzeitaktualisierungen.
Große Dokumente oder eine Anfrage mit vielen Ergebnissen überwachen. Echtzeit-Listener-Anfragen Weitere Informationen finden Sie unter Best Practices für Echtzeitaktualisierungen
Index-Fanout, insbesondere für Array- und Kartenfelder. write Prüfen Sie Ihre Nutzung von Arrayfeldern und Kartenfeldern Für Kartenfelder können Sie die Indexierung von Unterfeldern deaktivieren. Sie können auch Ausnahmen auf Sammlungsebene verwenden.
Große Schreibvorgänge und Batch-Schreibvorgänge. write

Versuchen Sie, die Anzahl der Schreibvorgänge in jedem Batch-Schreibvorgang zu reduzieren. Batch-Schreibvorgänge sind atomar. Viele Schreibvorgänge in einem einzelnen Batch können Latenz und Konflikte erhöhen. Beispiel: Ein Batch von 10 Schreibvorgängen ist besser als ein Batch von 500 Schreibvorgängen.

Verwenden Sie für die Bulk-Dateneingabe, für die Sie keine Atomarität benötigen, eine Server-Clientbibliothek mit parallelisierten einzelnen Schreibvorgängen. Batch-Schreibvorgänge erzielen eine bessere Leistung als serialisierte Schreibvorgänge, sind jedoch nicht besser als parallele Schreibvorgänge.