Einführung in temporäre Tabellen Was ist eine temporäre Tabelle: MySQL wird zum Speichern einiger Zwischenergebnissätze verwendet. Temporäre Tabellen sind nur in der aktuellen Verbindung sichtbar. Wenn die Verbindung geschlossen wird, löscht Mysql die Tabelle automatisch und gibt den gesamten Speicherplatz frei. Warum temporäre Tabellen generiert werden: Im Allgemeinen führt komplexes SQL dazu, dass eine große Anzahl temporärer Tabellen erstellt wird Es gibt zwei Arten von temporären Tabellen: temporäre Speichertabellen und temporäre Festplattentabellen. Temporäre Speichertabellen verwenden die Speicher-Speicher-Engine und temporäre Festplattentabellen verwenden die Myisam-Speicher-Engine (temporäre Festplattentabellen können auch die InnoDB-Speicher-Engine verwenden. Der Parameter internal_tmp_disk_storage_engine steuert, welche Speicher-Engine verwendet wird. Die Standardeinstellung ist nach MySQL 5.7.6 die InnoDB-Speicher-Engine und in früheren Versionen die Myisam-Speicher-Engine). Verwenden Sie die Parameter „Created_tmp_disk_tables“ und „Created_tmp_tables“, um anzuzeigen, wie viele temporäre Datenträgertabellen generiert werden und wie alle temporären Tabellen (Speicher und Datenträger) generiert werden. MySQL erstellt temporäre Tabellen in den folgenden Situationen: 1. UNION-Abfrage; 2. Verwenden Sie den TEMPTABLE-Algorithmus oder die Ansicht in einer UNION-Abfrage; 3. Wenn die ORDER BY- und GROUP BY-Klauseln unterschiedlich sind; 4. Bei Tabellenverknüpfungen befindet sich die Spalte ORDER BY nicht in der treibenden Tabelle. 5. DISTINCT-Abfrage und ORDER BY hinzufügen; 6. Wenn die Option SQL_SMALL_RESULT in SQL verwendet wird; 7. Unterabfragen in FROM; 8. Tabellen, die während Unterabfragen oder Semi-Joins erstellt wurden; EXPLAIN Überprüfen Sie die Spalte Extra des Ausführungsplanergebnisses. Wenn sie Using Temporary enthält, bedeutet dies, dass eine temporäre Tabelle verwendet wird. Wenn die Datenmenge, die in der temporären Tabelle gespeichert werden muss, die Obergrenze (Größe der temporären Tabelle oder maximale Größe der Heap-Tabelle, je nachdem, welche größer ist) überschreitet, muss natürlich eine plattenbasierte temporäre Tabelle generiert werden. Temporäre Datenträgertabellen werden in den folgenden Situationen erstellt: 1. Die Datentabelle enthält BLOB/TEXT-Spalten; 2. In den Spalten GROUP BY oder DSTINCT gibt es Spalten vom Zeichentyp mit mehr als 512 Zeichen (oder Spalten vom Binärtyp mit mehr als 512 Bytes. Vor 5.6.15 wird nur berücksichtigt, ob sie 512 Bytes überschreiten). 3. In SELECT-, UNION- und UNION ALL-Abfragen gibt es Spalten mit einer maximalen Länge von über 512 (512 Zeichen für Zeichenfolgentypen und 512 Byte für Binärtypen). 4. Führen Sie SQL-Befehle wie SHOW COLUMNS/FIELDS und DESCRIBE aus, da ihre Ausführungsergebnisse den Spaltentyp BLOB verwenden. Ab 5.7.5 wird eine neue Systemoption internal_tmp_disk_storage_engine hinzugefügt, um den Engine-Typ von temporären Festplattentabellen als InnoDB zu definieren. Zuvor konnte nur MyISAM verwendet werden. Die neue Systemoption default_tmp_storage_engine, die nach 5.6.3 hinzugefügt wurde, steuert den Engine-Typ der temporären Tabellen, die von CREATE TEMPORARY TABLE erstellt werden. Zuvor war der Standardwert MEMORY. Verwechseln Sie die beiden nicht. Siehe das folgende Beispiel mysql> setze default_tmp_storage_engine = "InnoDB"; -rw-rw---- 1 mysql mysql 8558 7. Juli 15:22 #sql4b0e_10_0.frm – Temporäre Tabelle der InnoDB-Engine -rw-rw---- 1 mysql mysql 98304 7. Juli 15:22 #sql4b0e_10_0.ibd -rw-rw---- 1 mysql mysql 8558 7. Juli 15:25 #sql4b0e_10_2.frm mysql> setze default_tmp_storage_engine = "MyISAM"; -rw-rw---- 1 mysql mysql 0 7. Juli 15:25 #sql4b0e_10_2.MYD – Temporäre Tabelle der MyISAM-Engine -rw-rw---- 1 mysql mysql 1024 7. Juli 15:25 #sql4b0e_10_2.MYI mysql> setze default_tmp_storage_engine = "SPEICHER"; -rw-rw---- 1 mysql mysql 8558 7. Juli 15:26 #sql4b0e_10_3.frm – Temporäre Tabelle der MEMORY-Engine Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: Welcher Befehl eignet sich besser für die unscharfe Suche nach Dateien in Linux?
>>: React Native realisiert den Auf- und Ab-Pull-Effekt der Überwachungsgeste
Inhaltsverzeichnis Anwendungsszenario Einfach aus...
Ursache Der Grund für das Schreiben dieses Blogs ...
Wir stoßen häufig auf dieses Problem: Wie kann ma...
In diesem Artikel wird der spezifische Code für V...
1. Download, ich nehme 8.0 als Beispiel Download-...
Inhaltsverzeichnis 1. Ereignisablauf 1. Konzept 2...
1. Nachfrage Wir haben drei Tabellen. Wir müssen ...
MySQL zwischen Grenzbereich Der Bereich zwischen ...
Lösen Sie das Problem des achtstündigen Zeitunter...
Vorwort: Wie erhält man die Koordinaten der aktue...
Erfahren Sie, wie Sie Ihre eigene Website auf Apa...
Um die Tabelle zu verschönern, können Sie untersc...
Im Allgemeinen sollte die Hintergrundfarbe einer W...
1. Installationspaket MySQL-Dienst-Downloadadress...
JavaScript kann viele tolle Dinge. Dieser Artikel...