Leistung von Datenbanken optimieren

Last reviewed 2023-08-06 UTC

Dieses Dokument im Google Cloud-Architektur-Framework enthält Empfehlungen zur Optimierung der Leistung Ihrer Datenbanken in Google Cloud.

Cloud SQL

Die folgenden Empfehlungen helfen Ihnen, die Leistung Ihrer Cloud SQL-Instanzen zu optimieren, auf denen SQL Server-, MySQL- und PostgreSQL-Datenbanken ausgeführt werden.

Weitere Informationen erhalten Sie in dieser Dokumentation:

Bigtable

Dieser Abschnitt enthält Empfehlungen zur Optimierung der Leistung Ihrer Bigtable-Instanzen.

Kapazität anhand von Leistungsanforderungen planen

Sie können Bigtable für verschiedenste Anwendungen verwenden, die jeweils andere Optimierungsziele haben. Beispielsweise kann bei Batchdatenverarbeitungsjobs der Durchsatz wichtiger sein als die Latenz. Bei einem Onlinedienst, der Nutzeranfragen verarbeitet, müssen Sie möglicherweise eine geringere Latenz vor dem Durchsatz priorisieren. Berücksichtigen Sie bei der Planung der Kapazität für Ihre Bigtable-Cluster die Durchsatz-/Latenz-Kompromisse. Weitere Informationen finden Sie unter Bigtable-Kapazität planen.

Orientieren Sie sich an den Best Practices für Schemadesign

Ihre Tabellen können auf Milliarden von Zeilen und Tausende von Spalten skaliert werden, sodass Sie Petabyte an Daten speichern können. Berücksichtigen Sie beim Entwerfen des Schemas für Ihre Bigtable-Tabellen die Best Practices für das Schemadesign.

Leistung überwachen und Anpassungen vornehmen

Überwachen Sie die CPU- und Laufwerknutzung für Ihre Instanzen, analysieren Sie die Leistung der einzelnen Cluster und prüfen Sie die Größenempfehlungen, die in den Monitoring-Diagrammen angezeigt werden.

Spanner

Dieser Abschnitt enthält Empfehlungen zur Optimierung der Leistung Ihrer Spanner-Instanzen.

Primärschlüssel wählen, der einen Hotspot verhindert

Ein Hotspot ist ein einzelner Server, der zur Verarbeitung vieler Anfragen gezwungen wird. Wenn Sie den Primärschlüssel für Ihre Datenbank wählen, folgen Sie den Best Practices für das Schemadesign, um einen Hotspot zu verhindern.

Best Practices für SQL-Codierung

Der SQL-Compiler in Spanner konvertiert jede deklarative SQL-Anweisung, die Sie in einen imperativen Abfrageausführungsplan schreiben. Spanner verwendet den Ausführungsplan, um die SQL-Anweisung auszuführen. Befolgen Sie beim Erstellen von SQL-Anweisungen die Best Practices für SQL, damit Spanner Ausführungspläne verwendet, die eine optimale Leistung erzielen.

Abfrageoptionen zur Verwaltung des SQL-Abfrageoptimierungstools verwenden

Spanner verwendet ein SQL-Abfrageoptimierungstool, um SQL-Anweisungen in effiziente Abfrageausführungspläne umzuwandeln. Der Abfrageausführungsplan, den das Optimierungsprogramm erstellt, kann sich geringfügig ändern, wenn sich das Abfrageoptimierungstool weiterentwickelt oder die Datenbankstatistiken aktualisiert werden. Mit den Abfrageoptionen können Sie das Risiko einer Leistungsregression minimieren, wenn sich das Abfrageoptimierungstool oder die Datenbankstatistik ändern.

Struktur der Abfrageausführungspläne visualisieren und optimieren

Zum Analysieren von Problemen mit der Abfrageleistung können Sie die Struktur der Abfrageausführungspläne mit der Visualisierung für Abfragepläne visualisieren und optimieren.

Vorgangs-APIs verwenden, um lang andauernde Vorgänge zu verwalten

Für bestimmte Methodenaufrufe erstellt Spanner Vorgänge mit langer Ausführungszeit, deren Abschluss sehr lange dauern kann. Beispiel: Wenn Sie eine Datenbank wiederherstellen, erstellt Spanner einen Vorgang mit langer Ausführungszeit, um den Wiederherstellungsfortschritt zu verfolgen. Damit Sie Vorgänge mit langer Ausführungszeit überwachen und verwalten können, bietet Spanner Vorgangs-APIs. Weitere Informationen finden Sie unter Vorgänge mit langer Ausführungszeit verwalten.

Best Practices für das Laden im Bulk befolgen

Spanner unterstützt mehrere Optionen zum Laden großer Datenmengen im Bulk. Die Leistung eines Bulk-Ladevorgangs hängt von Faktoren wie Partitionierung, Anzahl der Schreibanfragen und der Größe pro Anfrage ab. Wenn Sie große Datenmengen effizient laden möchten, folgen Sie den Best Practices für Bulk-Ladungen.

CPU-Auslastung überwachen und steuern

Die CPU-Auslastung Ihrer Spanner-Instanz kann sich auf die Anfragelatenzen auswirken. Ein überlasteter Backend-Server kann zu höheren Anfragelatenzen führen. Spanner bietet CPU-Auslastungsmesswerte, mit denen Sie eine hohe CPU-Auslastung untersuchen können. Bei leistungsabhängigen Anwendungen müssen Sie möglicherweise die CPU-Auslastung durch Erhöhen der Rechenkapazität verringern.

Latenzprobleme analysieren und lösen

Wenn ein Client einen Remote-Prozeduraufruf an Spanner sendet, wird zuerst die API-Anfrage von den Clientbibliotheken vorbereitet. Die Anfrage durchläuft dann das Google Front End und das Spanner API-Frontend, bevor sie die Spanner-Datenbank erreicht. Zum Analysieren und Lösen von Latenzproblemen müssen Sie die Latenz für jedes Segment des Pfads, das die API-Anfrage durchläuft, messen und analysieren. Weitere Informationen finden Sie im Leitfaden zur End-to-End-Latenz von Spanner.

Anwendungen starten, wenn die Datenbank einen einsatzbereiten Zustand erreicht

Während Ihre Spanner-Datenbank wächst, teilt sie den Schlüsselbereich Ihrer Daten in Splits auf. Jeder Split ist ein Bereich an Zeilen, der eine Teilmenge Ihrer Tabelle enthält. Um die Gesamtlast der Datenbank auszugleichen, verschiebt Spanner eigenständig und dynamisch einzelne Splits und weist sie verschiedenen Servern zu. Wenn die Splits auf mehrere Server verteilt sind, wird davon ausgegangen, dass sich die Datenbank im einsatzbereiten Zustand befindet. Eine einsatzbereite Datenbank kann die Parallelität maximieren und eine verbesserte Leistung liefern. Bevor Sie Ihre Anwendungen starten, empfehlen wir es, Ihre Datenbank mit Testdatenladevorgängen aufzuwärmen.

Nächste Schritte

Hier finden Sie Best Practices zur Optimierung der Leistung Ihrer Computing-, Speicher-, Netzwerk- und Analyseressourcen: