Heim >Datenbank >MySQL-Tutorial >Der Unterschied zwischen MyISAM und InnoDB
MySQL verfügt über mehrere Speicher-Engines, MyISAM und InnoDB sind zwei häufig verwendete. Hier sind einige grundlegende Konzepte zu diesen beiden Motoren (keine ausführliche Einführung).
MyISAM ist die Standardspeicher-Engine für MySQL. Sie basiert auf dem traditionellen ISAM-Typ und unterstützt die Volltextsuche, ist jedoch nicht transaktionssicher und unterstützt keine Fremdschlüssel. Jede MyISAM-Tabelle wird in drei Dateien gespeichert: Die FRM-Datei speichert die Tabellendefinition; die Datendatei ist MYD (MYData); die Indexdatei ist MYI (MYIndex).
InnoDB ist eine Transaktions-Engine, die Rollback, Absturzwiederherstellung, Parallelitätskontrolle für mehrere Versionen, ACID-Transaktionen und Sperren auf Zeilenebene unterstützt (die Zeilensperre der InnoDB-Tabelle ist nicht absolut. Wenn MySQL Wenn der Bereich bis gescannt werden kann, kann nicht bestimmt werden, die InnoDB-Tabelle sperrt auch die gesamte Tabelle, z. B. die SQL-Anweisung während des Like-Vorgangs. InnoDB speichert seine Tabellen und Indizes in einem Tablespace, der mehrere Dateien enthalten kann.
Hauptunterschied:
MyISAM ist nicht transaktionssicher, während InnoDB transaktionssicher ist.
Die Granularität der MyISAM-Sperre erfolgt auf Tabellenebene, während InnoDB Sperren auf Zeilenebene unterstützt.
MyISAM unterstützt den Volltexttypindex, InnoDB unterstützt jedoch keinen Volltextindex.
MyISAM ist relativ einfach und daher hinsichtlich der Effizienz besser als InnoDB. Kleine Anwendungen können die Verwendung von MyISAM in Betracht ziehen.
MyISAM-Tabellen werden als Dateien gespeichert. Die Verwendung von MyISAM-Speicher bei der plattformübergreifenden Datenübertragung erspart Ihnen viel Ärger.
InnoDB-Tabellen sind sicherer als MyISAM-Tabellen. Sie können nicht-transaktionale Tabellen in transaktionale Tabellen umwandeln (alter table tablename type=innodb) und dabei sicherstellen, dass keine Daten verloren gehen.
Anwendungsszenario:
MyISAM verwaltet nicht-transaktionale Tabellen. Es bietet Hochgeschwindigkeitsspeicherung und -abruf sowie Volltextsuchfunktionen. Wenn Ihre Anwendung eine große Anzahl von SELECT-Abfragen ausführen muss, ist MyISAM die bessere Wahl.
InnoDB wird für Transaktionsverarbeitungsanwendungen verwendet und verfügt über zahlreiche Funktionen, einschließlich ACID-Transaktionsunterstützung. Wenn Ihre Anwendung eine große Anzahl von INSERT- oder UPDATE-Vorgängen ausführen muss, sollten Sie InnoDB verwenden, was die Leistung gleichzeitiger Mehrbenutzer-Vorgänge verbessern kann.