Heim >Datenbank >MySQL-Tutorial >Was ist der Unterschied zwischen MySQL-Speicher-Engines?
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.
Die Betriebsumgebung dieses Tutorials: Windows10-System, MySQL8.0.22-Version, Dell G3-Computer.
Hinweis: Die MEMORY-Speicher-Engine wird offiziell als HEAP-Engine identifiziert.
Tabellen vom Typ Myisam unterstützen drei verschiedene Speicherstrukturen: statisch, dynamisch und komprimiert.
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.
(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.
(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-TutorialDas 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!