Optimieren von Parallel Query in MySQL - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Optimieren von Parallel Query in MySQL

Um Ihren DB-Cluster für Parallel Query zu optimieren, sollten Sie überlegen, welche DB-Cluster von dieser Funktion profitieren würden und ob Sie ein Upgrade auf diese Funktion durchführen sollten. Optimieren Sie dann Ihren Workload und erstellen Sie Schemaobjekte für Parallel Query.

Planen eines Parallel Query-Clusters

Bei der Planung eines DB-Clusters mit aktivierter paralleler Abfrage müssen einige Entscheidungen getroffen werden. Dazu gehören das Ausführen von Einrichtungsschritten (das Erstellen oder Wiederherstellen eines vollständigen Aurora MySQL-Clusters) und die Entscheidung, wie weit in Ihrem DB-Cluster die parallele Abfrage eingeschaltet werden sollen.

Berücksichtigen Sie bei der Planung Folgendes:

  • Wenn Sie Aurora MySQL verwenden, das mit MySQL 5.7 kompatibel ist, müssen Sie einen bereitgestellten Cluster erstellen. Anschließend aktivieren Sie die parallele Abfrage mit dem Parameter aurora_parallel_query.

    Ist ein Aurora-MySQL-Cluster vorhanden, müssen Sie für die Verwendung von Parallel Query keinen neuen Cluster erstellen. Sie können Ihren Cluster oder bestimmte DB-Instances im Cluster einer Parametergruppe zuordnen, bei der der Parameter aurora_parallel_query aktiviert ist. Dadurch können Sie die Zeit und den Aufwand für die Einrichtung der relevanten Daten für die parallele Abfrage reduzieren.

  • Planen Sie alle großen Tabellen, die neu organisiert werden müssen, damit Sie die parallele Abfrage verwenden können, wenn Sie auf diese zugreifen. Möglicherweise müssen Sie neue Versionen einiger großer Tabellen erstellen, bei denen die parallele Abfrage nützlich ist. Beispielsweise müssen Sie möglicherweise Volltextsuchindizes entfernen. Details hierzu finden Sie unter Erstellen von Schema-Objekten, mit denen die Vorteile von Parallel Query genutzt werden können.

Überprüfen der Versionskompatibilität von Aurora MySQL für Parallel Query

Um zu überprüfen, welche Aurora-MySQL-Versionen mit parallelen Abfrage-Clustern kompatibel sind, verwenden Sie den AWS CLI-Befehl describe-db-engine-versions und überprüfen Sie den Wert des Feldes SupportsParallelQuery. Das folgende Codebeispiel zeigt, wie Sie überprüfen können, welche Kombinationen für Cluster für parallele Abfragen in einer bestimmten AWS-Region verfügbar sind. Stellen Sie sicher, dass Sie die vollständige --query-Parameterzeichenfolge in einer einzigen Zeile angeben.

aws rds describe-db-engine-versions --region us-east-1 --engine aurora-mysql \ --query '*[]|[?SupportsParallelQuery == `true`].[EngineVersion]' --output text

Die vorhergehenden Befehle erzeugen eine Ausgabe, die der folgenden ähnelt: Die Ausgabe hängt davon ab, welche Aurora-MySQL-Versionen in der angegebenen AWS-Region verfügbar sind.

5.7.mysql_aurora.2.11.1 5.7.mysql_aurora.2.11.2 5.7.mysql_aurora.2.11.3 5.7.mysql_aurora.2.11.4 5.7.mysql_aurora.2.11.5 5.7.mysql_aurora.2.11.6 5.7.mysql_aurora.2.12.0 5.7.mysql_aurora.2.12.1 5.7.mysql_aurora.2.12.2 5.7.mysql_aurora.2.12.3 5.7.mysql_aurora.2.12.4 8.0.mysql_aurora.3.04.0 8.0.mysql_aurora.3.04.1 8.0.mysql_aurora.3.04.2 8.0.mysql_aurora.3.04.3 8.0.mysql_aurora.3.05.2 8.0.mysql_aurora.3.06.0 8.0.mysql_aurora.3.06.1 8.0.mysql_aurora.3.07.0 8.0.mysql_aurora.3.07.1

Nachdem Sie angefangen haben, die parallele Abfrage mit einem Cluster zu verwenden, können Sie die Leistung überwachen und Hindernisse bei der Nutzung der parallelen Abfrage beseitigen. Diese Anweisungen finden Sie unter Optimierung der Abfrageleistung fürParallel Query.

Wichtige Punkte bei einem Upgrade für parallele Abfragen

Abhängig von der Original- und Zielversionen beim Upgrade eines parallelen Abfrage-Clusters finden Sie möglicherweise Verbesserungen bei den Abfragetypen, die parallele Abfragen optimieren können. Möglicherweise müssen Sie auch feststellen, dass Sie keinen speziellen Engine-Modusparameter für parallele Abfragen angeben müssen. In den folgenden Abschnitten werden die Überlegungen beim Upgrade eines Clusters erläutert, bei dem die parallele Abfrage aktiviert ist.

Upgrade paralleler Abfrage-Cluster auf Aurora-MySQL-Version 3

Mehrere SQL-Anweisungen, Klauseln und Datentypen haben ab Aurora-MySQL-Version 3 neuen oder verbesserten Support für parallele Abfragen. Prüfen Sie beim Upgrade von einer Version, die vor Version 3 liegt, ob zusätzliche Abfragen von parallelen Abfrageoptimierungen profitieren können. Informationen zu diesen Erweiterungen für parallele Abfragen finden Sie unter Spaltendatentypen, Partitionierte Tabellen und Aggregationsfunktionen, GROUP BY-Klauseln und HAVING-Klauseln.

Wenn Sie einen Parallelabfragecluster von Aurora MySQL 2.08 oder niedriger aktualisieren, informieren Sie sich auch über Änderungen beim Einschalten der parallelen Abfrage. Lesen Sie dazu Upgrade auf Aurora MySQL 2.09 und höher.

In Aurora-MySQL-Version 3 ist die Hash-Join-Optimierung standardmäßig aktiviert. Die Konfigurationsoption aurora_disable_hash_join aus früheren Versionen wird nicht verwendet.

Upgrade auf Aurora MySQL 2.09 und höher

In Aurora MySQL 2.09 und höher funktioniert die parallele Abfrage für bereitgestellte Cluster und erfordert keinen parallelquery-Engine-Modus-Parameter. Daher müssen Sie keinen neuen Cluster erstellen oder aus einem vorhandenen Snapshot wiederherstellen, um die parallele Abfrage mit diesen Versionen verwenden zu können. Sie können die unter Upgrade der Nebenversion oder der Patch-Ebene eines Aurora MySQL-DB-Clusters beschriebenen Upgrade-Verfahren verwenden, um den Cluster auf eine solche Version zu aktualisieren. Sie können einen älteren Cluster aktualisieren, unabhängig davon, ob es sich um einen Parallelabfragecluster oder um einen bereitgestellten Cluster handelte. Um die Anzahl der Optionen im Menü Engine-Version zu reduzieren, können Sie Versionen anzeigen, die die parallele Abfrage unterstützen auswählen, um die Einträge in diesem Menü zu filtern. Wählen Sie dann Aurora MySQL 2.09 oder höher aus.

Nachdem Sie einen früheren Parallelabfragecluster auf Aurora MySQL 2.09 oder höher aktualisiert haben, aktivieren Sie die parallele Abfrage im aktualisierten Cluster. Die parallele Abfrage ist in diesen Versionen standardmäßig deaktiviert, und die Vorgehensweise zum Aktivieren ist anders. Die Hash-Join-Optimierung ist ebenfalls standardmäßig deaktiviert und muss separat aktiviert werden. Stellen Sie daher sicher, dass Sie diese Einstellungen nach dem Upgrade wieder aktivieren. Anweisungen dazu finden Sie unter Aktivieren und Deaktivieren von Parallel Query in Aurora MySQL und Hash-Join für parallele Abfrage-Cluster aktivieren.

Insbesondere schalten Sie die parallele Abfrage mithilfe der Konfigurationsparameter aurora_parallel_query=ON und aurora_disable_hash_join=OFF anstelle von aurora_pq_supported und aurora_pq ein. Die Parameter aurora_pq_supported und aurora_pq sind in den neueren Aurora MySQL-Versionen veraltet.

Im aktualisierten Cluster weist das Attribut EngineMode den Wert provisioned anstelle von parallelquery auf. Um zu prüfen, ob die parallele Abfrage für eine angegebene Engine-Version verfügbar ist, überprüfen Sie nun den Wert des Feldes SupportsParallelQuery in der Ausgabe des describe-db-engine-versions-Befehls AWS CLI. In früheren Aurora MySQL-Versionen haben Sie überprüft, ob parallelquery in der Liste SupportedEngineModes vorhanden ist.

Nach dem Upgrade auf Aurora MySQL 2.09 oder höher können Sie die folgenden Funktionen nutzen. Diese Funktionen sind nicht für Parallelabfragecluster verfügbar, auf denen ältere Aurora MySQL-Versionen ausgeführt werden.

Optimierung der Abfrageleistung fürParallel Query

Um mit Parallel Query die Abarbeitung einer Workload beeinflussen zu können, müssen Sie überlegen, wie Sie Parallel Query für die Abfragen einsetzen, bei denen diese Optimierung den größten Effekt hat.

Gehen Sie dazu wie folgt vor:

Erstellen von Schema-Objekten, mit denen die Vorteile von Parallel Query genutzt werden können

Bevor Sie Tabellen erstellen oder ändern, die Sie für die parallele Abfrage verwenden möchten, sollten Sie sich mit den unter Voraussetzungen und Einschränkungen beschriebenen Anforderungen vertraut machen.

Wenn Sie Parallelabfragen starten, müssen Tabellen die Einstellungen ROW_FORMAT=Compact oder ROW_FORMAT=Dynamic verwenden. Öffnen Sie deshalb die Konfigurationseinstellungen von Aurora und prüfen Sie, ob an der Konfigurationsoption INNODB_FILE_FORMAT Änderungen vorgenommen wurden. Geben Sie die Anweisung SHOW TABLE STATUS aus, um das Zeilenformat aller Tabellen einer Datenbank zu bestätigen.

Bevor Sie Ihr Schema ändern, um die parallele Abfrage zu aktivieren, um mit mehr Tabellen zu arbeiten, stellen Sie sicher, dass Sie es testen. Ihre Tests sollten bestätigen, ob die parallele Abfrage zu einer besseren Nettoleistung für diese Tabellen führt. Stellen Sie außerdem sicher, dass die Schema-Anforderungen an Parallel Query mit Ihren Zielen vereinbar sind.

Zum Beispiel: Prüfen Sie vor der Umstellung von ROW_FORMAT=Compressed auf ROW_FORMAT=Compact oder ROW_FORMAT=Dynamic die Leistung von Workloads anhand der ursprünglichen und der neuen Tabellen. Berücksichtigen Sie außerdem eventuelle sonstige Effekte (z. B. erhöhtes Datenvolumen).