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. Der Indexberater analysiert diese Abfragen regelmäßig, um neue Indexe zu empfehlen, mit denen sich die Abfrageleistung verbessern lässt. Mit dem Index Advisor können Sie Leistungsprobleme bei Systemen und Abfragen erkennen und beheben.
Wie funktioniert der Index-Berater?
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.
- Daten bereitstellen, mit denen Sie empfohlene Indexe bewerten können, z. B. geschätzte Speichergröße und Auswirkungen von Indexen auf eine Abfrage.
CREATE INDEX
-Befehl mit dem Datenbanknamen, dem Tabellennamen und den Spaltennamen an. Die erfassten Anfragen sind alle normalisierten Anfragen, aus 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 für Cloud SQL for MySQL hat die folgenden Einschränkungen:
- Der Indexberater gibt nur
CREATE INDEX
-Empfehlungen aus. - Der Index Advisor unterstützt keine Instanzen mit den folgenden Konfigurationen:
- Cloud SQL Enterprise-Instanzen
- Instanzen, die Maschinentypen mit gemeinsam genutztem Kern verwenden
Hinweise
Wenn Sie Empfehlungen für den Index Advisor erhalten möchten, müssen Sie die Cloud SQL Enterprise Plus-Version verwenden und Query Insights für Cloud SQL Enterprise Plus 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 zuzuweisen, in dem sich die Cloud SQL-Instanz befindet, um die Berechtigungen zu erhalten, die Sie zum Abrufen von Empfehlungen des Index-Assistenten 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 Index Advisor erforderlich sind. Erweitern Sie den Abschnitt Erforderliche Berechtigungen, um die erforderlichen Berechtigungen anzuzeigen:
Erforderliche Berechtigungen
Die folgenden Berechtigungen sind erforderlich, um Empfehlungen des Index Advisor 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 Query Insights für Cloud SQL Enterprise Plus aktivieren, werden Empfehlungen des Indexberaters automatisch aktiviert.
Indexberaterempfehlungen deaktivieren
Sie können Indexberaterempfehlungen nicht deaktivieren, ohne Query Insights für Cloud SQL Enterprise Plus zu deaktivieren.
Informationen zum Deaktivieren von Indexberaterempfehlungen und Query Insights für Cloud SQL Enterprise Plus finden Sie unter Query Insights für Cloud SQL Enterprise Plus deaktivieren.
Empfehlungen des Indexberaters ansehen
Cloud SQL führt regelmäßig die Analyse des Indexberaters aus. Wenn Sie Empfehlungen des Indexberaters aufrufen möchten, verwenden Sie das 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
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Query Insights.
- Die Indexberaterempfehlungen werden in der Spalte Empfehlung im Abschnitt Top-Abfragen und -Tags angezeigt.
- 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 Anfrage ansehen
So rufen Sie Indexempfehlungen für eine bestimmte Abfrage auf:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Query Insights.
- Klicken Sie im Bereich Top-Abfragen und -Tags auf Abfragen.
- So rufen Sie Empfehlungsdetails für eine Anfrage ab:
- Klicken Sie auf eine Anfrage, um mehr über die Empfehlungen für die ausgewählte Anfrage zu erfahren. Dazu gehören die folgenden Informationen:
- Leistungsauswirkung (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ätzlich benötigter geschätzter Speicherplatz: Die geschätzte Speichergröße, die zum Erstellen aller empfohlenen Indexe erforderlich ist.
- Anzahl der betroffenen Abfragen: Die Gesamtzahl der Abfragen im Arbeitslast, die von den Indexempfehlungen betroffen sind. Ein Index kann für mehrere Abfragen von Vorteil sein.
- Klicken Sie für eine bestimmte Abfrage auf Indexe erstellen, um detaillierte Empfehlungen zum Erstellen von Indexen zur Verbesserung der Abfrageleistung zu erhalten.
- Klicken Sie auf eine Anfrage, um mehr über die Empfehlungen für die ausgewählte Anfrage zu erfahren. Dazu gehören die folgenden Informationen:
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.
Empfohlenen Index über das Query Insights-Dashboard erstellen
So erstellen Sie einen empfohlenen Index über das Dashboard „Query Insights“:
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Query Insights.
- Klicken Sie in der Tabelle Top-Dimensionen nach Datenbanklast auf Abfragen.
- Klicken Sie für eine bestimmte Abfrage auf Create Indexes (Indizes erstellen).
- Klicken Sie auf Alle Indexbefehle kopieren. Die
CREATE INDEX
-Befehle werden in die Zwischenablage kopiert. - Stellen Sie über die Befehlszeile eine Verbindung zur primären Instanz her.
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");
Empfohlenen Index mit einer Datenbanktabellenansicht erstellen
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
-
Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die Übersichtsseite einer Instanz zu öffnen.
- Klicken Sie auf Query Insights.
- Klicken Sie in der Tabelle Top-Dimensionen nach Datenbanklast auf Abfragen.
- Klicken Sie für eine bestimmte Anfrage auf Indizes erstellen.
- Klicken Sie auf Betroffene Abfragen anzeigen.
- Klicken Sie auf eine Abfrage, um Details zur betroffenen 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.