Verwendung von MySQL-Speichertabellen und temporären TabellenSpeichertabelle:Sitzung 1 $ mysql -uroot root@(keine) 10:05:06>Test verwenden Datenbank geändert root@test 10:06:06>TABELLE ERSTELLEN tmp_memory (i INT) ENGINE = SPEICHER; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) root@test 10:08:46>in tmp_memory-Werte einfügen (1); Abfrage OK, 1 Zeile betroffen (0,00 Sek.) root@test 10:08:46> Sitzung2 $ mysql -uroot-Test root@test 10:05:12>TABELLE ERSTELLEN tmp_memory (i INT) ENGINE = SPEICHER; FEHLER 1050 (42S01): Tabelle 'tmp_memory' existiert bereits root@test 10:16:27>Wählen Sie * aus temporärem Speicher; +------+ | ich | +------+ | 1 | +------+ 1 Zeile im Satz (0,00 Sek.) 1. Mehrere Sitzungen können keine Tabellen mit demselben Namen erstellen 2. Nachdem eine Sitzung erstellt wurde, ist sie auch für andere Sitzungen sichtbar 3. Im Datenverzeichnis befindet sich nur tmp_memory.frm. Die Tabellenstruktur wird auf der Festplatte gespeichert und die Daten werden im Speicher gespeichert. 4. Nach dem Neustart oder Herunterfahren von MySQL gehen die Daten in der Speichertabelle verloren, die Tabellenstruktur ist jedoch weiterhin vorhanden 5. Sie können Indizes erstellen, Indizes löschen und eindeutige Indizes unterstützen 6. Betrifft nicht die Master- und Slave-Datenbanken. In die Master-Datenbank eingefügte Daten sind auch in der Slave-Datenbank zu finden. 7. Tabellen anzeigen Temporäre Tabelle:Sitzung1 $ mysql -uroot-Test root@test 10:30:18>TEMPORÄRE TABELLE ERSTELLEN tmp_table (Name VARCHAR(10) NICHT NULL, Wert INTEGER NICHT NULL); Abfrage OK, 0 Zeilen betroffen (0,05 Sek.) root@test 10:31:54>Wählen Sie * aus tmp_table; +--------+-------+ | Name | Wert | +--------+-------+ | aaaaaa | 10 | +--------+-------+ 1 Zeile im Satz (0,00 Sek.) Sitzung2 root@test 10:20:13> TEMPORÄRE TABELLE ERSTELLEN tmp_table (Name VARCHAR(10) NICHT NULL, Wert INTEGER NICHT NULL); Abfrage OK, 0 Zeilen betroffen (0,02 Sek.) root@test 10:30:39>in tmp_table-Werte einfügen ('bbbbbbb',10); Abfrage OK, 1 Zeile betroffen (0,01 Sek.) root@test 10:31:33>Wählen Sie * aus tmp_table; +---------+-------+ | Name | Wert | +---------+-------+ | bbbbbb | 10 | +---------+-------+ 1 Zeile im Satz (0,00 Sek.) root@test 10:31:43>Beenden Tschüss [1 Einzeln:MS-Master db152011.sqa.cm6:mysql ~ ] $ mysql -uroot-Test root@test 10:32:17>Wählen Sie * aus tmp_table; FEHLER 1146 (42S02): Tabelle „test.tmp_table“ existiert nicht root@test 10:32:22> root@test 10:32:23> 1. Die Namen der erstellten Tabellen können gleich sein 2. Tabellenstruktur und Daten werden im Speicher abgelegt 3. Wenn die Sitzung verschwindet, verschwinden die Tabellenstruktur und die Daten 4. Sie können Indizes erstellen und löschen 5. Die von der Hauptdatenbank erstellte Tabelle kann nicht in der Standbydatenbank gefunden werden. 6. Tabellen anzeigen kann die Tabelle nicht sehen Was Sie bei der Verwendung von Speichertabellen beachten sollten1. Die Speichertabelle muss Daten löschen oder die Tabelle selbst löschen. Dazu ist eine Löschberechtigung erforderlich, was gefährlicher ist 2. Die Tabellenstruktur der Speichertabelle wird auf der Festplatte gespeichert. Wenn mehrere Sitzungen denselben Tabellennamen verwenden, treten Konflikte auf. Wenn der Tabellenname nicht verwendet werden muss und die Tabellenstruktur bei jeder Verwendung neu erstellt werden muss, entstehen viele kleine Dateien, was der DB-Wartung nicht förderlich ist und Risiken birgt, wenn der DBA die Tabelle bereinigt. Aus den obigen Gründen ist die Verwendung einer Speichertabelle nicht geeignet. 1. Temporäre Tabellen sind auf Sitzungsebene. Selbst wenn mehrere Sitzungen Tabellen mit demselben Namen erstellen, wirken sie sich nicht gegenseitig aus. 2. Die Sitzung verschwindet und alles verschwindet, was der Fehlerbehebung bei der Anwendung nicht förderlich ist Darüber hinaus benötigen beide zusätzlichen Speicherplatz, was auf der Datenbankseite tolerierbar, aber nicht sehr kontrollierbar ist. Auf der Datenbankseite gibt es außerdem diesen Parameter: max_tmp_tables Die maximale Anzahl temporärer Tabellen, die ein Client gleichzeitig geöffnet halten kann. Der Standardwert ist 32 und Sie können diesen Wert nach Bedarf anpassen. mysql erstellt eine temporäre Tabelle und fügt die Abfrageergebnisse in eine vorhandene Tabelle einIch bin heute auf ein sehr kniffliges Problem gestoßen. Ich wollte einige Daten vorübergehend speichern und sie später lesen. Ich erinnere mich, dass der Lehrer im Datenbanktheorie-Kurs sagte, dass temporäre Tabellen erstellt werden können. Ich frage mich, ob MySQL eine solche Funktion hat? Temporäre Tabellen befinden sich im Speicher und sollten schneller gelesen werden als Ansichten. Anschließend müssen Sie die Abfrageergebnisse auch in einer temporären Tabelle speichern. Nachfolgend finden Sie ein Beispiel für die Erstellung einer temporären Tabelle und das Einfügen von Daten zu Ihrer Referenz. A. 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 mit der folgenden Anweisung erstellte Tabelle beschränkt: 1) Felder definieren Temporäre Tabelle erstellen tmp_table ( Name VARCHAR(10) NOT NULL, Uhrzeit und Datum NICHT NULL ) Ein fortgeschrittenerer Punkt ist: Erstellen Sie eine temporäre Tabelle `temptable` ( `jws` varchar(100) Zeichensatz utf8 sortieren utf8_bin NICHT NULL, `tzlb` varchar(100) Zeichensatz utf8 sortieren utf8_bin NICHT NULL, `uptime`-Datum NICHT NULL )ENGINE=InnoDB DEFAULT CHARSET=latin1″ Sogar die Kodierungsmethode ist angegeben. . Haha, um verstümmelte Zeichen zu vermeiden. 2) Importieren Sie die Abfrageergebnisse direkt in eine temporäre Tabelle Temporäre Tabelle erstellen tmp_table SELECT * FROM Tabellenname B. 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 Wie speichern Sie also die Abfrageergebnisse in einer vorhandenen Tabelle? 1. Sie können die zweite Methode in A verwenden. 2. Verwenden Sie Parameter für temporäre MySQL-Datenbankspeichertabelle1. Maximale Größe der temporären Tabelle im internen Speicher Diese Variable gilt nicht für vom Benutzer erstellte MEMORY-Tabellen. In einigen komplexeren Abfragen werden temporäre Tabellen erstellt. Der tatsächliche Grenzwert wird durch den kleineren Wert von tmp_table_size und max_heap_table_size bestimmt. 1.1. Temporäre Speichertabellen und temporäre Festplattentabellen Wenn die temporäre Tabelle im Speicher das Limit überschreitet, konvertiert MySQL sie automatisch in eine temporäre Tabelle auf der Festplatte. 1.2. Einstellungsreferenz: Beachten Sie beim Einstellen der temporären Tabellengröße die Werte der temporären Festplattentabelle und der temporären Speichertabelle. 2. Maximale Größe der MEMORY-Tabelle Diese Variable legt die maximale Größe fest, auf die vom Benutzer erstellte MEMORY-Tabellen anwachsen dürfen. Dieser Variablenwert wird verwendet, um den MAX_ROWS-Wert der MEMORY-Tabelle zu berechnen. 2.1. Verwendung Das Setzen dieser Variable hat keine Auswirkung auf vorhandene MEMORY-Tabellen, es sei denn, die Tabelle wird mit einer Anweisung wie CREATE TABLE neu erstellt oder mit ALTER TABLE oder TRUNCATE TABLE geändert. Das Obige ist meine persönliche Erfahrung. Ich hoffe, es kann Ihnen als Referenz dienen. Ich hoffe auch, dass Sie 123WORDPRESS.COM unterstützen werden. Sollten dennoch Fehler oder unvollständige Überlegungen vorliegen, freue ich mich über eine Korrektur. Das könnte Sie auch interessieren:
|
<<: Tutorial zur HTML-Tabellenauszeichnung (16): Attribut für horizontale Titelausrichtung ALIGN
>>: Prozessdiagramm für das erste Bereitstellungs-Webprojekt von Tomcat
*Seite erstellen: zwei Eingabefelder und ein Butt...
Siehe: https://www.jb51.net/article/112612.htm Üb...
CentOS 8 hat das Installationsprogramm für Softwa...
Inhaltsverzeichnis Übersicht zur Umgebungseinrich...
In unserem Leben, bei der Arbeit und beim Studium ...
Die automatisierte Projektbereitstellung wird häu...
Awk ist eine Anwendung zur Verarbeitung von Textd...
Vorwort Die am häufigsten verwendete Datenbank in...
Problem mit der Mysql-Connector-Java-Treiberversi...
1. Überprüfen Sie den Zeichensatz der Datenbank D...
Grundlegende Syntax Sie können eine Ansicht mit d...
Das Datenträgerkontingent ist die Speichergrenze ...
Inhaltsverzeichnis Kongruent und inkongruent kong...
Wenn Sie den Datumswähler kapseln, müssen Sie die...
Die lokale Umgebung ist Windows 10 + WSL2 (Ubuntu...