Heim >Datenbank >MySQL-Tutorial >Was ist der Unterschied zwischen MySQL-Speicher-Engines?

Was ist der Unterschied zwischen MySQL-Speicher-Engines?

WBOY
WBOYOriginal
2022-08-26 17:23:034094Durchsuche

Unterschiede zwischen MySQL-Speicher-Engines: 1. MyISAM unterstützt keine Transaktionen und Sperren auf Zeilenebene, während InnoDB Transaktionen und Sperren auf Zeilenebene unterstützt; 2. InnoDB unterstützt MVCC und Fremdschlüssel, während MyISAM MVCC und Fremdschlüssel nicht unterstützt. Schlüssel.

Was ist der Unterschied zwischen MySQL-Speicher-Engines?

Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.

Was ist der Unterschied zwischen MySQL-Speicher-Engines? InnoDB unterstützt Transaktionen, während MyISAM keine Transaktionen unterstützt. InnoDB unterstützt Sperren auf Zeilenebene, während MyISAM Sperren auf Tabellenebene unterstützt. InnoDB unterstützt MVCC. während MyISAM nicht unterstützt wird. Bietet Hochgeschwindigkeitsspeicherung und -abruf sowie Volltextsuchfunktionen. MyISAM wird in allen MySQL-Konfigurationen unterstützt und ist die Standardspeicher-Engine, es sei denn, MySQL ist standardmäßig für die Verwendung einer anderen Engine konfiguriert.

    2) Die MEMORY-Speicher-Engine stellt „In-Memory“-Tabellen bereit. Die MERGE-Speicher-Engine ermöglicht die Verarbeitung von Sammlungen in derselben MyISAM-Tabelle wie in einer einzelnen Tabelle. Genau wie MyISAM verarbeiten die Speicher-Engines MEMORY und MERGE nicht-transaktionale Tabellen, und beide Engines sind standardmäßig in MySQL enthalten.
  • Hinweis: Die MEMORY-Speicher-Engine wird offiziell als HEAP-Engine identifiziert.

  • 3) InnoDB und Speicher-Engines stellen Transaktionssicherheitstabellen bereit, die standardmäßig in allen MySQL 5.1-Binärdistributionen enthalten sind. Sie können MySQL so konfigurieren, dass jede Engine entsprechend Ihren Präferenzen zugelassen oder deaktiviert wird. 2. Einführung in Funktionspunkte für hohe Belastung wählen Sie .
  • Tabellen vom Typ Myisam unterstützen drei verschiedene Speicherstrukturen: statisch, dynamisch und komprimiert.

  • (1) Statischer Typ: Die Größe der definierten Tabellenspalte ist fest (dh sie enthält keine Datentypen variabler Länge wie xblob, xtext, varchar usw.), sodass MySQL automatisch den statischen Typ verwendet Myisam-Format.
  • Die Leistung von Tabellen, die statische Formate verwenden, ist relativ hoch, da der Overhead, der zum Speichern von Daten in einem vorgegebenen Format während der Wartung und beim Zugriff erforderlich ist, sehr gering ist. Diese hohe Leistung wird jedoch durch Platz ersetzt, da sie bei der Definition festgelegt ist. Unabhängig davon, wie groß der Wert in der Spalte ist, hat der Maximalwert Vorrang und nimmt den gesamten Platz ein.

  • (2) Dynamischer Typ: Wenn eine Spalte (auch wenn nur eine Spalte vorhanden ist) als dynamisch definiert ist (xblob, xtext, varchar und andere Datentypen), verwendet myisam automatisch den dynamischen Typ, obwohl die dynamische Typtabelle verwendet wird nimmt mehr Platz ein als die statische Typtabelle. Weniger Platz, aber geringere Leistung, denn wenn sich der Inhalt eines Feldes ändert, muss seine Position wahrscheinlich verschoben werden, was zu Fragmentierung führt. Wenn sich die Daten stärker ändern, nimmt die Fragmentierung zu und die Datenzugriffsleistung nimmt entsprechend ab.
  • (3) Komprimierter Typ: Wenn eine in dieser Datenbank erstellte Tabelle während des gesamten Lebenszyklus schreibgeschützt ist, wird in diesem Fall die komprimierte Tabelle von myisam verwendet, um den belegten Speicherplatz zu reduzieren.

2) MEMORY-Speicher-Engine:

(1) Die Memory-Storage-Engine unterscheidet sich ein wenig von den vorherigen Speicher-Engines. Sie verwendet die darin gespeicherten Daten, um Tabellen zu erstellen, und alle Daten werden auch im Speicher gespeichert. (2) Jede auf der Speicher-Engine basierende Tabelle entspricht tatsächlich einer Festplattendatei. Der Dateiname und der Tabellenname der Datei sind gleich und der Typ ist .frm. Diese Datei speichert nur die Struktur der Tabelle, und ihre Datendateien werden im Speicher gespeichert, was eine schnelle Datenverarbeitung fördert und die Verarbeitungsfähigkeiten der gesamten Tabelle verbessert.

(3) Die Speicher-Engine verwendet standardmäßig einen Hash-Index (HASH), der schneller ist als die Verwendung des B-+Tree-Typs. Wenn Leser den B-Tree-Typ verwenden möchten, können sie beim Erstellen darauf verweisen. (4) Die Daten der Speicher-Engine-Datei werden im Speicher gespeichert. Wenn im mysqld-Prozess eine Ausnahme auftritt, verschwinden die Daten, wenn die Maschine neu gestartet oder heruntergefahren wird. Daher ist der Lebenszyklus von Tabellen in der Speicher-Engine sehr kurz und wird im Allgemeinen nur einmal verwendet.

3) innoDB-Speicher-Engine:

(1) innodb-Speicher-Engine Diese MySQL-Tabelle bietet Transaktionssicherheit mit Transaktions-, Rollback- und Systemabsturzreparaturfunktionen sowie Burst-Kontrolle für mehrere Versionen.

(2) innodb unterstützt Auto-Inkrement-Spalten (auto_inkrementieren). Wenn es leer ist, wenn es verwendet wird, wie kann es automatisch den vorhandenen Wert speichern und beginnen, den Wert zu erhöhen? Wenn er groß ist, wird dieser Wert gespeichert.

(3) Die innodb-Speicher-Engine unterstützt Fremdschlüssel. Die Tabelle, in der sich der Fremdschlüssel befindet, wird als untergeordnete Tabelle bezeichnet, und die Tabelle, von der er abhängt, wird als übergeordnete Tabelle bezeichnet.

(4) Das Wichtigste an der Innodb-Speicher-Engine ist, dass sie Transaktionen und transaktionsbezogene Funktionen unterstützt. (5) Die Innodb-Speicher-Engine unterstützt MVCC-Sperren auf Zeilenebene. Empfohlenes Lernen:

MySQL-Video-Tutorial

Das obige ist der detaillierte Inhalt vonWas ist der Unterschied zwischen MySQL-Speicher-Engines?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn