Heim  >  Artikel  >  Datenbank  >  Wann werden temporäre Tabellen verwendet? Zusammenfassung der Verwendung temporärer MySQL-Tabellen

Wann werden temporäre Tabellen verwendet? Zusammenfassung der Verwendung temporärer MySQL-Tabellen

php是最好的语言
php是最好的语言Original
2018-08-08 11:54:433970Durchsuche

Zusammenfassung: MySQL verwendet in vielen Fällen temporäre Tabellen. Was ist eine temporäre Tabelle? Temporäre Tabellen werden nur während verwendet Es ist ersichtlich, dass MySQL die Tabelle automatisch löscht und den gesamten Speicherplatz freigibt, wenn die Verbindung geschlossen wird.

MySQL verwendet in vielen Fällen temporäre Tabellen. Fassen wir zusammen, wann temporäre Tabellen verwendet werden:

Was ist eine temporäre Tabelle: MySQL wird zum Speichern einiger Zwischenergebnistabellen und temporärer Tabellen verwendet sind nur in der aktuellen Verbindung sichtbar. Wenn die Verbindung geschlossen wird, löscht MySQL automatisch die Tabelle und gibt den gesamten Speicherplatz frei. Warum temporäre Tabellen generiert werden: Im Allgemeinen werden temporäre Tabellen aufgrund komplexer SQL in großer Zahl erstellt.

Temporäre Tabellen werden in zwei Typen unterteilt: eine ist eine temporäre Speichertabelle und die andere eine temporäre Festplattentabelle. Die temporäre Speichertabelle verwendet die Speicher-Engine, und die temporäre Festplattentabelle verwendet die Myisam-Speicher-Engine (temporäre Festplattentabellen können auch die Innodb-Speicher-Engine verwenden. Verwenden Sie den Parameter internal_tmp_disk_storage_engine, um zu steuern, welche Speicher-Engine verwendet wird. Ab mysql5.7.6 Der Standardwert ist die Innodb-Speicher-Engine, frühere Versionen waren standardmäßig die Myisam-Speicher-Engine. Verwenden Sie die Parameter Created_tmp_disk_tables und Created_tmp_tables, um anzuzeigen, wie viele temporäre Festplattentabellen generiert werden und alle generierten temporären Tabellen (Speicher und Festplatte).

Die Größe des temporären Speichertabellenbereichs wird durch zwei Parameter gesteuert: tmp_table_size und max_heap_table_size. Im Allgemeinen wird der kleinere der beiden Parameter verwendet, um den Maximalwert des temporären Tabellenbereichs im Speicher zu steuern. Für temporäre Tabellen, die aufgrund zu großer Datenmengen zunächst im Speicher erstellt und später in temporäre Tabellen auf der Festplatte übertragen werden, wird nur max_heap_table_size verwendet Parametersteuerung verwendet. Es gibt keine Größenkontrolle für temporäre Tabellen, die direkt auf der Festplatte generiert werden.

Die folgenden Operationen verwenden temporäre Tabellen:

1ã Union-Abfrage

2ã Für Ansichtsoperationen, z. B. die Verwendung einiger TEMPTABLE-Algorithmen, Union oder Aggregation

3ã Unterabfrage

4ã Semi-Join einschließlich Nicht in, vorhanden usw.

5ã Abgeleitete Tabelle, die durch Abfrage generiert wurde

6ã Komplexe Gruppierung nach und Reihenfolge nach

7ã Einfügen, wählen Sie dieselbe Tabelle aus, MySQL generiert eine temporäre Tabelle, um die ausgewählten Zeilen zwischenzuspeichern

8ã Mehrere Tabellen aktualisieren

9ã GROUP_CONCAT()- oder COUNT(DISTINCT)-Anweisung

. . .

Mysql verhindert auch die Verwendung von Speichertabellenbereich und verwendet direkt temporäre Tabellen auf der Festplatte:

1ã Die Tabelle enthält BLOB- oder TEXT-Spalten

2ã Bei Verwendung von Union oder Union All , Wenn die Select-Klausel Spalten enthält, die größer als 512 Bytes sind

3ã Spalten oder Desc-Tabellen anzeigen, gibt es LOB- oder TEXT-Klauseln

4ã GROUP BY- oder DISTINCT-Klauseln, die Spalten enthalten, die größer als 512 Bytes sind. Spalte

Verwandte Empfehlungen:

Verwendung der temporären MySQL-Tabelle

So verwenden Sie die temporäre Tabelle in MySQL

Das obige ist der detaillierte Inhalt vonWann werden temporäre Tabellen verwendet? Zusammenfassung der Verwendung temporärer MySQL-Tabellen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn