Temporäre MySQL-Tabellen sind sehr nützlich, wenn wir temporäre Daten speichern müssen. Die temporäre Tabelle ist nur in der aktuellen Verbindung sichtbar. Wenn die Verbindung geschlossen wird, löscht MySQL die Tabelle automatisch und gibt den gesamten Speicherplatz frei. Temporäre Tabellen wurden in MySQL Version 3.23 hinzugefügt. Wenn Ihre MySQL-Version niedriger als 3.23 ist, können Sie temporäre MySQL-Tabellen nicht verwenden. Heutzutage verwenden jedoch nur noch wenige Leute eine so niedrige Version des MySQL-Datenbankdienstes. Temporäre MySQL-Tabellen sind nur für die aktuelle Verbindung sichtbar. Wenn Sie ein PHP-Skript zum Erstellen einer temporären MySQL-Tabelle verwenden, wird die temporäre Tabelle bei jeder Ausführung des PHP-Skripts automatisch zerstört. Wenn Sie andere MySQL-Clientprogramme verwenden, um eine Verbindung zum MySQL-Datenbankserver herzustellen und eine temporäre Tabelle zu erstellen, wird die temporäre Tabelle erst gelöscht, wenn Sie das Clientprogramm schließen. Natürlich können Sie sie auch manuell löschen. Beispiele Nachfolgend sehen Sie ein einfaches Beispiel für die Verwendung temporärer MySQL-Tabellen. Der folgende SQL-Code kann auf die Funktion mysql_query() eines PHP-Skripts angewendet werden. mysql> TEMPORÄRE TABELLE „SalesSummary“ erstellen ( -> Produktname VARCHAR (50) NICHT NULL -> , total_sales DECIMAL(12,2) NICHT NULL STANDARD 0.00 -> , Durchschnittlicher Stückpreis DECIMAL(7,2) NICHT NULL STANDARD 0,00 -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0 ); Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> INSERT INTO Verkaufszusammenfassung -> (Produktname, Gesamtumsatz, durchschnittlicher Stückpreis, Gesamtzahl verkaufter Einheiten) -> WERTE -> ('Gurke', 100,25, 90, 2); mysql> AUSWÄHLEN * FROM Verkaufszusammenfassung; +--------------+----------+----------------+------------------+ | Produktname | Gesamtumsatz | Durchschnittlicher Stückpreis | Gesamtzahl verkaufter Einheiten | +--------------+----------+----------------+------------------+ | Gurke | 100,25 | 90,00 | 2 | +--------------+----------+----------------+------------------+ 1 Zeile im Satz (0,00 Sek.) Wenn Sie den Befehl SHOW TABLES zum Anzeigen einer Tabellenliste verwenden, wird die Tabelle „SalesSummary“ nicht angezeigt. Wenn Sie die aktuelle MySQL-Sitzung beenden und dann den Befehl SELECT verwenden, um die ursprünglich erstellten temporären Tabellendaten zu lesen, stellen Sie fest, dass die Tabelle in der Datenbank nicht vorhanden ist, da die temporäre Tabelle beim Beenden zerstört wurde. Löschen temporärer MySQL-Tabellen Standardmäßig werden temporäre Tabellen automatisch zerstört, wenn Sie die Verbindung zur Datenbank trennen. Natürlich können Sie auch den Befehl DROP TABLE in der aktuellen MySQL-Sitzung verwenden, um die temporäre Tabelle manuell zu löschen. Nachfolgend sehen Sie ein Beispiel für das manuelle Löschen einer temporären Tabelle: mysql> TEMPORÄRE TABELLE „SalesSummary“ erstellen ( -> Produktname VARCHAR (50) NICHT NULL -> , total_sales DECIMAL(12,2) NICHT NULL STANDARD 0.00 -> , Durchschnittlicher Stückpreis DECIMAL(7,2) NICHT NULL STANDARD 0,00 -> , total_units_sold INT UNSIGNED NOT NULL DEFAULT 0 ); Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> INSERT INTO Verkaufszusammenfassung -> (Produktname, Gesamtumsatz, durchschnittlicher Stückpreis, Gesamtzahl verkaufter Einheiten) -> WERTE -> ('Gurke', 100,25, 90, 2); mysql> AUSWÄHLEN * FROM Verkaufszusammenfassung; +--------------+----------+----------------+------------------+ | Produktname | Gesamtumsatz | Durchschnittlicher Stückpreis | Gesamtzahl verkaufter Einheiten | +--------------+----------+----------------+------------------+ | Gurke | 100,25 | 90,00 | 2 | +--------------+----------+----------------+------------------+ 1 Zeile im Satz (0,00 Sek.) mysql> DROP TABLE Verkaufszusammenfassung; mysql> AUSWÄHLEN * FROM Verkaufszusammenfassung; FEHLER 1146: Tabelle „RUNOOB.SalesSummary“ existiert nicht So erstellen Sie eine temporäre Tabelle direkt mithilfe einer Abfrage: CREATE TEMPORARY TABLE temporärer Tabellenname AS ( SELECT * FROM alter Tabellenname LIMIT 0,10000 ); Hier sind einige zusätzlicheWenn Sie mit sehr großen Tabellen arbeiten, müssen Sie gelegentlich viele Abfragen ausführen, um eine kleine Teilmenge einer großen Datenmenge abzurufen. Anstatt diese Abfragen für die gesamte Tabelle auszuführen, ist es möglicherweise schneller, MySQL die wenigen Datensätze auf einmal suchen zu lassen, die Sie benötigen, diese Datensätze in einer temporären Tabelle auszuwählen und dann die Abfragen für diese Tabellen auszuführen. Das Erstellen einer temporären Tabelle ist einfach. Fügen Sie der normalen Anweisung CREATE TABLE das Schlüsselwort TEMPORARY hinzu: Temporäre Tabelle erstellen tmp_table ( Name VARCHAR(10) NOT NULL, Wert INTEGER NICHT NULL ) Die temporäre Tabelle bleibt für die Dauer Ihrer Verbindung zu MySQL bestehen. Wenn Sie die Verbindung trennen, löscht MySQL die Tabelle automatisch und gibt den belegten Speicherplatz frei. Natürlich können Sie die Tabelle löschen und Speicherplatz freigeben, während die Verbindung noch besteht. DROP TABLE temporäre Tabelle Wenn beim Erstellen einer temporären Tabelle mit dem Namen tmp_table bereits eine Tabelle mit dem Namen tmp_table in der Datenbank vorhanden ist, maskiert (verbirgt) die temporäre Tabelle zwangsläufig die nicht temporäre Tabelle tmp_table. Wenn Sie die temporäre Tabelle als HEAP-Tabelle deklarieren, können Sie in MySQL auch angeben, dass sie im Speicher erstellt werden soll: Temporäre Tabelle erstellen tmp_table ( Name VARCHAR(10) NOT NULL, Wert INTEGER NICHT NULL ) TYP = HEAP Da HEAP-Tabellen im Speicher abgelegt werden, können Abfragen, die Sie an diese Tabellen ausführen, schneller sein als an temporäre Tabellen auf der Festplatte. HEAP-Tabellen unterscheiden sich jedoch etwas von normalen Tabellen und haben ihre eigenen Einschränkungen. Weitere Einzelheiten finden Sie im MySQL-Referenzhandbuch. Wie bereits zuvor vorgeschlagen, sollten Sie temporäre Tabellen testen, um zu sehen, ob diese tatsächlich schneller sind als das Ausführen von Abfragen an eine große Datenbank. Wenn die Daten gut indiziert sind, ist die temporäre Tabelle möglicherweise überhaupt nicht schneller. 1. Nachdem die temporäre Tabelle von MySQL getrennt wurde, löscht das System automatisch die Daten in der temporären Tabelle. Dies ist jedoch auf die durch die folgende Anweisung erstellte Tabelle beschränkt: Temporäre Tabelle erstellen tmp_table ( Name VARCHAR(10) NOT NULL, Wert INTEGER NICHT NULL ) 2) Importieren Sie die Abfrageergebnisse direkt in eine temporäre Tabelle Temporäre Tabelle erstellen tmp_table SELECT * FROM Tabellenname 2. Darüber hinaus können Sie mit MySQL auch temporäre Tabellen direkt im Speicher erstellen. Da es sich im Speicher befindet, ist die Geschwindigkeit sehr hoch. Die Syntax lautet wie folgt: Temporäre Tabelle erstellen tmp_table ( Name VARCHAR(10) NOT NULL, Wert INTEGER NICHT NULL ) TYP = HEAP 3. Aus der obigen Analyse ist ersichtlich, dass die Daten in der temporären Tabelle gelöscht werden. Sie werden automatisch gelöscht, wenn Sie die Verbindung trennen. Allerdings ist es Ihrem Programm nicht möglich, bei jeder Ausgabe einer SQL-Anweisung eine Verbindung zur Datenbank herzustellen (wenn dies der Fall ist, liegt das Problem vor, über das Sie sich Sorgen machen. Wenn nicht, liegt kein Problem vor). Denn die Daten werden nur gelöscht, wenn die Datenbankverbindung getrennt wird. Wenn Sie in einer Datenbankverbindung mehrere SQL-Anweisungen ausgeben, löscht das System die temporären Tabellendaten nicht automatisch. Das könnte Sie auch interessieren:
|
<<: Anzeige der Tabellenliste für die Front-End-Anwendungsentwicklung von Vue Element
>>: Richtige Schritte zur Installation von Nginx unter Linux
Vorwort: Die Artikelserie „Erste Schritte mit MyS...
<br />Einleitung: Diese Idee kam mir, als ic...
Nach der VIP-Konfiguration wird beim Aktiv/Standb...
In diesem Artikel finden Sie das Tutorial zur Ins...
Inhaltsverzeichnis 1. Datenbanken verstehen 1.1 D...
Inhaltsverzeichnis einführen Start Installieren ①...
Ich habe kürzlich bei der Entwicklung eines Proje...
Erstellen eines Vue 3.x-Projekts npm init @vitejs...
Beispiel für das Zuschneiden einer Webseite von P...
In SQL wird GROUP BY verwendet, um Daten in den E...
Hauptunterschiede: 1. Typ SQL-Datenbanken werden ...
Wenn Docker einen Container erstellt, verwendet e...
Es ist sehr wichtig, den Betriebsstatus von Conta...
Es ist mühsam, die db2-Datenbank direkt auf dem H...
Inhaltsverzeichnis 1. Unzip-Befehl 1.1 Syntax 1.2...