Indexberater verwenden

Auf dieser Seite wird der Indexberater von Cloud SQL for MySQL beschrieben und wie Sie seine Indexempfehlungen aufrufen und anwenden können.

Cloud SQL for MySQL bietet einen vollständig verwalteten Indexberater, der die Abfragen verfolgt, die Ihre Datenbank regelmäßig verarbeitet. Diese Abfragen werden regelmäßig analysiert, um neue Indexe zu empfehlen, mit denen sich die Leistung der Abfragen steigern lässt. Mit dem Index Advisor können Sie Leistungsprobleme mit Systemen und Abfragen erkennen und beheben.

Wie funktioniert der Indexierungsberater?

Der Indexberater hilft Ihnen, die Abfrageverarbeitung zu verbessern, indem er Folgendes tut:

  • Empfehlen Sie eine Reihe von Indexen mit SQL-Befehlen zum Erstellen von Indexen.
  • Stellen Sie Daten zur Verfügung, mit denen Sie empfohlene Indexe bewerten können, z. B. die geschätzte Speichergröße und die Auswirkungen von Indexen auf eine Abfrage.
Der Indexierungsberater speichert und zeigt den CREATE INDEX-Befehl mit dem Datenbanknamen, dem Tabellennamen und den Spaltennamen an. Die erfassten Suchanfragen sind alle normalisierten Suchanfragen, aus denen alle Literale entfernt wurden.

Indexempfehlungen werden im inaktiven Zustand verschlüsselt.

In Cloud SQL for MySQL können Sie den Indexberater mithilfe von Datenbank-Flags konfigurieren und optimieren. Weitere Informationen finden Sie unter Flags für den Indexberater.

Beschränkungen

Der Indexberater von Cloud SQL for MySQL hat die folgenden Einschränkungen:

  • Der Indexberater gibt nur CREATE INDEX Empfehlungen.
  • Der Indexierungsberater unterstützt keine Instanzen mit den folgenden Konfigurationen:
    • Cloud SQL Enterprise-Instanzen
    • Instanzen mit Maschinentypen mit gemeinsam genutztem Kern

Hinweise

Wenn Sie Empfehlungen des Indexierungsberaters erhalten möchten, müssen Sie die Cloud SQL Enterprise Plus-Version verwenden und Abfragestatistiken für die Cloud SQL Enterprise Plus-Version für Ihre Cloud SQL-Instanz aktivieren.

Erforderliche Rollen und Berechtigungen

Bitten Sie Ihren Administrator, Ihnen die IAM-Rolle Cloud SQL Viewer (roles/cloudsql.viewer) für das Projekt zu gewähren, in dem die Cloud SQL-Instanz gehostet wird, um die Berechtigungen zu erhalten, die Sie für Empfehlungen des Index-Advisors benötigen. Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigungen, die zum Abrufen von Empfehlungen des Indexberaters erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind erforderlich, um Empfehlungen des Index-Advisors zu erhalten:

  • databaseinsights.recommendations.query
  • databaseinsights.resourceRecommendations.query

Sie können diese Berechtigungen auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Empfehlungen für Indexberater aktivieren

Wenn Sie Abfragestatistiken für die Cloud SQL Enterprise Plus-Version aktivieren, werden Empfehlungen des Indexberaters automatisch aktiviert.

Indexberaterempfehlungen deaktivieren

Sie können die Empfehlungen des Indexberaters nicht deaktivieren, ohne auch die Abfragestatistiken für die Cloud SQL Enterprise Plus-Version zu deaktivieren.

Informationen zum Deaktivieren von Indexberaterempfehlungen und Abfragestatistiken für die Cloud SQL Enterprise Plus-Version finden Sie unter Abfragestatistiken für die Cloud SQL Enterprise Plus-Version deaktivieren.

Empfehlungen des Indexberaters ansehen

Cloud SQL führt regelmäßig die Analyse des Indexberaters aus. Empfehlungen des Indexberaters finden Sie im Query Insights-Dashboard. Sie können sich die Empfehlungen des Indexberaters auch als Tabelle ansehen und abfragen oder jederzeit eine Analyse und einen Bericht anfordern.

Empfehlungen im Query Insights-Dashboard ansehen und filtern

  1. Google Cloud Rufen Sie in der Console die Seite Cloud SQL-Instanzen auf.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Klicken Sie auf Query Insights.
  4. Die Indexberaterempfehlungen werden in der Spalte Empfehlung im Abschnitt Top-Abfragen und -Tags angezeigt.
  5. Optional: Wenn Sie nur die Abfragen mit CREATE INDEX-Empfehlungen sehen möchten, fügen Sie einen Filter für Empfehlung: Indexe erstellen hinzu.

Empfehlungen für eine Suchanfrage ansehen

So rufen Sie Indexempfehlungen für eine bestimmte Abfrage auf:

  1. Google Cloud Rufen Sie in der Console die Seite Cloud SQL-Instanzen auf.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Klicken Sie auf Query Insights.
  4. Klicken Sie im Bereich Top-Abfragen und -Tags auf Abfragen.
  5. So rufen Sie Details zu Empfehlungen für eine Suchanfrage ab:
    • Klicken Sie auf eine Suchanfrage, um mehr über die Empfehlungen für die ausgewählte Suchanfrage zu erfahren. Sie sehen dann unter anderem die folgenden Informationen:
      • Auswirkung auf die Leistung (hoch, mittel und niedrig): Die geschätzte Abfragegeschwindigkeit, nachdem alle empfohlenen Indexe erstellt wurden.
      • Empfehlungen: Empfehlungen zum Erstellen von Indexen.
      • Betroffene Tabellen: Die Anzahl der Tabellen, die beim Erstellen von Indexen betroffen sind.
      • Geschätzter zusätzlicher Speicherplatz: Die geschätzte Speicherkapazität, die zum Erstellen aller empfohlenen Indexe erforderlich ist.
      • Anzahl der betroffenen Abfragen: Die Gesamtzahl der Abfragen in der Arbeitslast, die von den Indexempfehlungen betroffen sind. Ein Index kann mehrere Abfragen verbessern.
    • Klicken Sie für eine bestimmte Abfrage auf Indexe erstellen, um detaillierte Empfehlungen zum Erstellen von Indexen zur Verbesserung der Abfrageleistung zu erhalten.

Empfehlungen als Datenbanktabellenansicht ansehen

Die Ergebnisse finden Sie in der folgenden Tabelle in der Datenbank mysql:

  • mysql.cloudsql_db_advisor_recommended_indexes: Hier werden alle empfohlenen neuen Indexe für jede Datenbank aufgelistet. Außerdem enthält er Schätzungen für den für jeden Index erforderlichen Speicherplatz und die Anzahl der Abfragen, auf die sich jeder Index auswirken kann.

Wenn Sie beispielsweise die Ergebnisse der letzten Analyse der Indexempfehlung in Tabellenform sehen möchten, führen Sie diese Abfrage aus:

SELECT * FROM mysql.cloudsql_db_advisor_recommended_indexes;

Empfohlene Indexe erstellen

Sie können empfohlene Indexe über das Query Insights-Dashboard oder über eine Datenbanktabellendatenansicht erstellen.

So erstellen Sie einen empfohlenen Index mit dem Dashboard „Query Insights“:

  1. Google Cloud Rufen Sie in der Console die Seite Cloud SQL-Instanzen auf.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Klicken Sie auf Query Insights.
  4. Klicken Sie in der Tabelle Top-Dimensionen nach Datenbanklast auf Abfragen.
  5. Klicken Sie für eine bestimmte Abfrage auf Indexe erstellen.
  6. Klicken Sie auf Alle Indexbefehle kopieren. Die CREATE INDEX-Befehle werden in die Zwischenablage kopiert.
  7. Stellen Sie über die Befehlszeile eine Verbindung zur primären Instanz her.
  8. Führen Sie die Befehle aus, die in die Zwischenablage kopiert wurden, um die empfohlenen Indexe zu erstellen, z. B.:

    CREATE INDEX ON "public"."demo_order" ("customer_id");

Die Spalte index der Tabelle mysql.cloudsql_db_advisor_recommended_indexes enthält in jeder Zeile eine vollständige MySQL-DDL-Anweisung CREATE INDEX zum Generieren des in dieser Zeile empfohlenen Index.

Führen Sie diese DDL-Anweisung genau wie dargestellt aus, um die Empfehlung dieser Zeile anzuwenden.

Betrachten Sie beispielsweise diese Ausgabe bei der manuellen Ausführung einer Analyse mithilfe der im vorherigen Abschnitt beschriebenen Abfrage:

                    index                   | estimated_storage_size_in_mb
--------------------------------------------+------------------------------
 CREATE INDEX ON "School"."Students"("age") |                            3
(1 row)

Dieser Bericht enthält eine einzige Empfehlung: Fügen Sie der Spalte age in der Tabelle Students des Schemas School einen Index mit einer einzelnen Spalte hinzu. Geben Sie eine DDL-Abfrage wie im Bericht dargestellt ein, um diese Empfehlung anzuwenden:

CREATE INDEX ON "School"."Students"("age");

Betroffene Abfragen ansehen

  1. Google Cloud Rufen Sie in der Console die Seite Cloud SQL-Instanzen auf.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
  3. Klicken Sie auf Query Insights.
  4. Klicken Sie in der Tabelle Top-Dimensionen nach Datenbanklast auf Abfragen.
  5. Klicken Sie für eine bestimmte Abfrage auf Indexe erstellen.
  6. Klicken Sie auf Betroffene Abfragen anzeigen.
  7. Klicken Sie auf eine Abfrage, um Details zu dieser Abfrage aufzurufen.

Indexberater konfigurieren

Der Indexierungsberater ist so konzipiert, dass er mit seinen Standardeinstellungen für die meisten Anwendungsfälle funktioniert. Sie können sein Verhalten jedoch durch Festlegen verschiedener Datenbank-Flags optimieren.

Standardmäßig wird der Indexierungsberater einmal alle 24 Stunden ausgeführt. Sie können die Zeit für die automatische Planung mit dem Flag cloudsql_index_advisor_auto_advisor_schedule ändern oder mit dem Flag cloudsql_index_advisor_run_at_timestamp eine Ad-hoc-Analyse für ein bestimmtes Datum und eine bestimmte Uhrzeit ausführen. Weitere Informationen finden Sie unter Flags für den Indexberater.

Nächste Schritte