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 Indexberater können Sie Leistungsprobleme bei Systemen und Abfragen erkennen und beheben.

Funktionsweise des Indexberaters

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

  • Empfehlungen für eine Reihe von Indexen mit SQL-Befehlen zum Erstellen von Indexen.
  • Daten bereitstellen, mit denen Sie empfohlene Indexe bewerten können, z. B. geschätzte Speichergröße und Auswirkungen von Indexen auf eine Abfrage.
Der Indexberater speichert und zeigt den Befehl CREATE INDEX mit dem Datenbanknamen, dem Tabellennamen und den Spaltennamen an. Bei den verfolgten Abfragen handelt es sich um normalisierte Abfragen, bei denen alle Literale entfernt wurden.

Indexempfehlungen werden im inaktiven Zustand verschlüsselt.

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

Beschränkungen

Der Indexberater von Cloud SQL for MySQL unterliegt den folgenden Einschränkungen:

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

Hinweis

Wenn Sie Empfehlungen vom Indexberater erhalten möchten, müssen Sie die Cloud SQL Enterprise Plus-Version verwenden und Query Insights 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 Cloud SQL-Betrachter (roles/cloudsql.viewer) IAM-Rolle für das Projekt zuzuweisen, in dem sich die Cloud SQL-Instanz befindet, um die Berechtigungen zu erhalten, die Sie für Empfehlungen vom Indexberater 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 für Empfehlungen vom Indexberater erforderlich sind. Maximieren Sie den Abschnitt Erforderliche Berechtigungen , um die notwendigen Berechtigungen anzuzeigen, die erforderlich sind:

Erforderliche Berechtigungen

Die folgenden Berechtigungen sind für Empfehlungen vom Indexberater erforderlich:

  • 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 Query Insights für die Cloud SQL Enterprise Plus-Version aktivieren, werden Empfehlungen vom Indexberater automatisch aktiviert. Weitere Informationen zu den Anforderungen für den Neustart finden Sie unter Query Insights aktivieren.

Empfehlungen für Indexberater deaktivieren

Sie können Empfehlungen vom Indexberater nicht deaktivieren, ohne Query Insights für die Cloud SQL Enterprise Plus-Version zu deaktivieren.

Informationen zum Deaktivieren von Empfehlungen vom Indexberater und Query Insights für die Cloud SQL Enterprise Plus-Version finden Sie unter Query Insights für die Cloud SQL Enterprise Plus-Version deaktivieren.

Empfehlungen vom Indexberater ansehen

Cloud SQL führt regelmäßig die Analyse des Indexberaters aus. Verwenden Sie das Query Insights-Dashboard, um Empfehlungen vom Indexberater anzusehen. 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. Rufen Sie in der Google Cloud Console die Cloud SQL-Instanzen Seite 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 Empfehlungen vom Indexberater 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 Abfrage ansehen

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

  1. Rufen Sie in der Google Cloud Console die Cloud SQL-Instanzen Seite 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. Führen Sie einen der folgenden Schritte aus, um Empfehlungsdetails für eine Abfrage zu erhalten:
    • Klicken Sie auf eine Abfrage, um weitere Informationen zu den Empfehlungen für die ausgewählte Abfrage zu erhalten, einschließlich der folgenden Informationen:
      • Leistungsauswirkungen (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.
      • Zusätzlicher geschätzter Speicherbedarf: Die geschätzte Speichergröße, 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 Datenbanktabellenansicht erstellen.

So erstellen Sie einen empfohlenen Index über das Query Insights-Dashboard:

  1. Rufen Sie in der Google Cloud Console die Cloud SQL-Instanzen Seite 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-CREATE INDEX-DDL -Anweisung 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. Rufen Sie in der Google Cloud Console die Cloud SQL-Instanzen Seite 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 zur betroffenen Abfrage zu erhalten.

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