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.
Die Datenbank erstellt temporäre Tabellen auf der Festplatte
Ihre aktuelle Nutzung temporärer Tabellen auf der Festplatte ist erheblich gestiegen, und zwar bis zu Prozentsatz
. Die Datenbank erstellt ungefähr die Anzahl
temporärer Tabellen pro Sekunde. Dies kann die Leistung beeinträchtigen und die Festplattenoperationen auf der DB-Instance
erhöhen.
Themen
Unterstützte Engine-Versionen
Diese Insight-Informationen werden für alle Versionen von unterstützt.
Kontext
Manchmal ist es notwendig, dass der MySQL-Server während der Verarbeitung einer Abfrage eine interne temporäre Tabelle erstellt. Aurora MySQL kann eine interne temporäre Tabelle im Speicher speichern, wo sie von der TempTable- oder MEMORY-Speicherengine verarbeitet oder von InnoDB auf der Festplatte gespeichert werden kann. Weitere Informationen finden Sie unter Interne Verwendung temporärer Tabellen in MySQL
Mögliche Ursachen für dieses Problem
Eine Zunahme temporärer Tabellen auf der Festplatte weist auf die Verwendung komplexer Abfragen hin. Wenn der konfigurierte Speicher nicht ausreicht, um temporäre Tabellen im Speicher zu speichern, erstellt Aurora MySQL die Tabellen auf der Festplatte. Dies kann die Leistung beeinträchtigen und den Festplattenbetrieb erhöhen.
Aktionen
Abhängig von den Ursachen Ihres Einblicks empfehlen wir verschiedene Aktionen.
-
Für Aurora-MySQL-Version 3 empfehlen wir die Verwendung der TempTable-Speicher-Engine.
-
Optimieren Sie Ihre Abfragen, um weniger Daten zurückzugeben, indem Sie nur die erforderlichen Spalten auswählen.
Wenn Sie das Performance-Schema aktivieren und alle
statement
-Instrumente aktiviert und zeitgesteuert sind, können SieSYS.statements_with_temp_tables
abfragen, um die Liste der Abfragen abzurufen, die temporäre Tabellen verwenden. Weitere Informationen finden Sie unter Voraussetzungen für die Verwendung des sys–Schemasin der MySQL-Dokumentation. -
Erwägen Sie die Indizierung von Spalten, die an Sortier- und Gruppierungsoperationen beteiligt sind.
-
Schreiben Sie Ihre Abfragen neu, um
BLOB
- undTEXT
-Spalten zu vermeiden. Diese Spalten verwenden immer die Festplatte. -
Optimieren Sie die folgenden Datenbankparameter:
tmp_table_size
undmax_heap_table_size
.Der Standardwert für diese Parameter ist 16 MiB. Wenn Sie die MEMORY-Speicher-Engine für temporäre In-Memory-Tabellen verwenden, wird deren maximale Größe durch den
tmp_table_size
- odermax_heap_table_size
-Wert definiert, je nachdem, welcher Wert kleiner ist. Wenn diese maximale Größe erreicht ist, konvertiert MySQL die interne temporäre In-Memory-Tabelle automatisch in eine interne temporäre InnoDB-Tabelle auf der Festplatte. Weitere Informationen finden Sie unter Verwenden der TempTable-Speicher-Engine Amazon RDS für MySQL und Amazon Aurora MySQL. Anmerkung
Beim expliziten Erstellen von MEMORY-Tabellen mit CREATE TABLE bestimmt nur die
max_heap_table_size
-Variable, wie groß eine Tabelle werden kann. Es erfolgt auch keine Konvertierung in ein Festplattenformat.
Relevante Metriken
Die folgenden Performance Insights-Metriken beziehen sich auf diesen Einblick:
-
Created_tmp_disk_tables
-
Created_tmp_tables
Weitere Informationen finden Sie unter Created_tmp_disk_tables