Wissenspunkte zur Speicher-Storage-Engine Die Speicher-Engine wird in der täglichen Arbeit selten verwendet. In einigen MySQL-Syntaxen wird jedoch die Speichertabelle der Speicher-Engine verwendet. Sie weist die folgenden Merkmale auf: 1. Die Syntax zum Erstellen einer Speichertabelle lautet „create table … engine=memory“. 2. Die Daten dieser Tabelle werden im Speicher abgelegt und beim Neustart des Systems gelöscht, die Tabellenstruktur bleibt jedoch bestehen. 2. Die Daten und der Index der Speicher-Engine sind getrennt. Tabellen der Speicher-Engine können auch Primärschlüssel haben. Die Primärschlüssel-ID speichert den Speicherort aller Daten. Die Primärschlüssel-ID ist ein Hash-Index und die Schlüssel im Index sind nicht fortlaufend. Diese Datenorganisationsform, bei der Daten und Indizes separat gespeichert werden, wird als „Heap-organisierte Tabelle“ bezeichnet und unterscheidet sich von der „Index-organisierten Tabelle“ der Innodb-Speicher-Engine. Der Unterschied zwischen Innodb und Speicher-Storage-Engines 1. Die Datenspeicherreihenfolge der Memory-Speicher-Engine entspricht der Einfügereihenfolge, während die Datenspeicherreihenfolge der InnoDB-Speicher-Engine entsprechend dem gruppierten Index angeordnet ist. Hier sind einige Beispiele: mysql> Tabelle erstellen t1(id int Primärschlüssel, c int) Engine=Speicher; Abfrage OK, 0 Zeilen betroffen (0,00 Sek.) mysql> in t1 einfügen: Werte(1,1),(2,2),(3,3),(4,4),(5,5),(6,6),(7,7),(8,8),(9,9),(0,0); Abfrage OK, 10 Zeilen betroffen (0,00 Sek.) Datensätze: 10 Duplikate: 0 Warnungen: 0 mysql> wähle * aus t1; +----+------+ | Ich würde | c | +----+------+ | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 | | 5 | 5 | | 6 | 6 | | 7 | 7 | | 8 | 8 | | 9 | 9 | | 0 | 0 | +----+------+ 10 Zeilen im Satz (0,00 Sek.) mysql> Tabelle erstellen t2(id int Primärschlüssel, c int) Engine=innodb; Abfrage OK, 0 Zeilen betroffen (0,01 Sek.) mysql> in t2 Werte einfügen (1,1), (2,2), (3,3), (4,4), (5,5), (6,6), (7,7), (8,8), (9,9), (0,0); Abfrage OK, 10 Zeilen betroffen (0,00 Sek.) Datensätze: 10 Duplikate: 0 Warnungen: 0 mysql> wähle * aus t2; +----+------+ | Ich würde | c | +----+------+ | 0 | 0 | | 1 | 1 | | 2 | 2 | | 3 | 3 | | 4 | 4 | | 5 | 5 | | 6 | 6 | | 7 | 7 | | 8 | 8 | | 9 | 9 | +----+------+ 10 Zeilen im Satz (0,00 Sek.) Es ist ersichtlich, dass in den Ergebnissen der Speicher-Speicher-Engine der Datensatz (0,0) am Ende steht, was mit der Einfügereihenfolge übereinstimmt, während sie in den Ergebnissen der InnoDB-Speicher-Engine in der Reihenfolge der Datensätze angeordnet sind. 2. Wenn die Datendatei eine Lücke aufweist, muss die InnoDB-Speicher-Engine die Daten an der angegebenen Stelle einfügen, während die Memory-Speicher-Engine die Daten einfügen kann, solange sie eine Lücke findet. 3. Wenn sich der Datenspeicherort ändert, muss die Speicher-Speicher-Engine alle Indizes ändern, während die InnoDB-Speicher-Engine nur den Primärschlüsselindex ändern muss. 4. Die InnoDB-Speicher-Engine verfügt bei Abfragen über eine „Tabellenrückgabe“, während die Memory-Speicher-Engine keine Tabellenrückgabe benötigt. 5. Die InnoDB-Speicher-Engine unterstützt Varchar, die Memory-Speicher-Engine jedoch nicht. Alle Varchars werden als Zeichen behandelt. Darüber hinaus unterstützt die Memory-Speicher-Engine keine Blob- und Textfelder. 6. Die Speicher-Storage-Engine kann keine Bereichsabfragen unterstützen. Weil sein Indextyp ein Hash-Index ist In Produktionsumgebungen wird die Verwendung von Speichertabellen aus den folgenden zwei Gründen im Allgemeinen nicht empfohlen: 1. Speichertabellen unterstützen keine Zeilensperren, sondern nur Tabellensperren. Sobald die Tabelle aktualisiert ist, werden andere Vorgänge in der Tabelle, einschließlich Lesevorgänge, blockiert. Dies bedeutet, dass die Parallelitätsleistung solcher Tabellen schlecht ist. 2. Die Datenpersistenz ist schlecht. Sobald die Datenbank abstürzt, gehen die Daten in der Speichertabelle verloren. Er vergisst, eine Anweisung zum Löschen aus der Tabelle in das Binärprotokoll zu schreiben, aber die Tabellenstruktur ist immer noch vorhanden. In einer Dual-M-Umgebung kann diese Löschanweisung die temporären Tabellendaten der Masterdatenbank verunreinigen, wenn die Slavedatenbank abstürzt, was ein relativ gefährlicher Vorgang ist. Oben finden Sie ausführliche Informationen zur MySQL-Speicher-Engine. Weitere Informationen zur MySQL-Speicher-Engine finden Sie in den anderen verwandten Artikeln auf 123WORDPRESS.COM! Das könnte Sie auch interessieren:
|
<<: Detaillierte Erklärung der Funktionen jedes Ports von Tomcat
>>: Vue+el-table realisiert das Zusammenführen von Zellen
Detailliertes Tutorial zum Herunterladen und Inst...
Die Festlegung einer Begrenzung der Anzahl von Be...
Linux-Systemversion: CentOS7.4 MySQL-Version: 5.7...
1. Ursache: Ich muss eine SQL-Datei importieren, ...
1. Wenn ffmpeg Videodateien überträgt, können die...
Einfaches XHTML-Webformular im Webdesign 5. Techn...
1. Verwandte Konzepte 1.1 Jenkins-Konzepte: Jenki...
Dieser Artikel wurde auf GitHub https://github.co...
Was ist JDK? Nun, wenn Sie diese Frage nicht kenn...
Seine Eigenschaften sind wie folgt: Richtung Stell...
Inhaltsverzeichnis Warum brauchen wir Garbage Col...
Vorwort Tatsächlich bin ich noch nie auf eine Sit...
stat-Funktion und stat-Befehl Erklärung von [inod...
Inhaltsverzeichnis Hintergrund Zusammengesetzte I...
Inhaltsverzeichnis Optimieren von Sortierabfragen...