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

Lösung für die Navicat Premier-Remoteverbindung zum MySQL-Fehler 10038

Schlägt die Remote-Verbindung zu MySQL fehl, kann...

Lösung für MySql-Fehler 1698 (28000)

1. Problembeschreibung: MysqlERROR1698 (28000)-Lö...

Heute bin ich auf ein sehr seltsames Problem gestoßen und habe es selbst gelöst

...Es ist so, heute wollte ich ein Popup-Fenster m...

Versuchen Sie Docker+Nginx, um die Single-Page-Anwendungsmethode bereitzustellen

Von der Entwicklung bis zur Bereitstellung: Mache...

Detaillierte Erklärung zu Padding und Abkürzungen im CSS-Boxmodell

Wie oben gezeigt, sind Füllwerte zusammengesetzte...

Detaillierte Erläuterung der MySQL-Transaktionsverwaltungsvorgänge

Dieser Artikel beschreibt die MySQL-Transaktionsv...

Einführung in MySQL-Isolationsebene, Sperre und MVCC

Ziel dieses Artikels ist es, die Beziehung zwisch...

Verständnis von Haslaylout- und BFC-Parsing

1. haslayout und bfc sind IE-spezifische und Stand...

Umfassendes Verständnis von HTML-Formularelementen

Wie unten dargestellt: XML/HTML-CodeInhalt in die...

So verbinden Sie XShell und Netzwerkkonfiguration in CentOS7

1. Linux-Netzwerkkonfiguration Bevor Sie das Netz...

Vue.js implementiert Musikplayer

In diesem Artikel wird der spezifische Code von V...

Vue implementiert Bildverifizierungscode beim Anmelden

In diesem Artikelbeispiel wird der spezifische Co...