Kenntnisse über die MySQL Memory-Speicher-Engine

Kenntnisse über die MySQL Memory-Speicher-Engine

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:
  • Analyse basierend auf der MySQL-Architektur
  • Detaillierte Analyse basierend auf der MySQL-Architektur
  • Detaillierte Erklärung der Speicher-Engine in MySQL
  • Detaillierte Erläuterung der Speicherverwaltung der MySQL InnoDB-Speicher-Engine
  • Unterschiede und Vergleiche von Speicher-Engines in MySQL
  • MySQL Series 7 MySQL-Speicher-Engine
  • Detaillierte Erläuterung verschiedener Sperren in der InnoDB-Speicher-Engine in MySQL
  • Detaillierte Erklärung nicht gruppierter Indizes in der MyISAM-Speicher-Engine von MySQL
  • MySQL-Speicher-Engines InnoDB und MyISAM
  • Einführung in die MySQL-Architektur und Speicher-Engine

<<:  Detaillierte Erklärung der Funktionen jedes Ports von Tomcat

>>:  Vue+el-table realisiert das Zusammenführen von Zellen

Artikel empfehlen

Grafisches Tutorial zur Installation und Konfiguration von MySQL 5.7.19 (Win10)

Detailliertes Tutorial zum Herunterladen und Inst...

So installieren Sie den MySQL 5.7.28-Binärmodus unter CentOS 7.4

Linux-Systemversion: CentOS7.4 MySQL-Version: 5.7...

Chinesische Parameterbeschreibung und Verwendungsbeispiele für ffmpeg

1. Wenn ffmpeg Videodateien überträgt, können die...

5 einfache XHTML-Webformulare für Webdesign

Einfaches XHTML-Webformular im Webdesign 5. Techn...

Einführung in Jenkins und wie man Jenkins mit Docker bereitstellt

1. Verwandte Konzepte 1.1 Jenkins-Konzepte: Jenki...

Scrollen von HTML-Marquee-Zeichenfragmenten

Seine Eigenschaften sind wie folgt: Richtung Stell...

Detaillierte Erläuterung des Garbage Collection-Mechanismus von JavaScript

Inhaltsverzeichnis Warum brauchen wir Garbage Col...

So nummerieren Sie die Ergebnisse von MySQL-Abfragedaten automatisch

Vorwort Tatsächlich bin ich noch nie auf eine Sit...

Wie wirkt sich der zusammengesetzte Index von MySQL aus?

Inhaltsverzeichnis Hintergrund Zusammengesetzte I...

MySQL-Abfrageoptimierung mit benutzerdefinierten Variablen

Inhaltsverzeichnis Optimieren von Sortierabfragen...