InnoDB ist eine Speicher-Engine für das Datenbankmanagementsystem MySQL . Es bietet die standardmäßigen ACID-konformen Transaktionsfunktionen sowie die Unterstützung von Fremdschlüsseln (Declarative Referential Integrity). InnoDB unterstützt :
- Tabellenbereiche
- Fremde Schlüssel
- Indizes für die Volltextsuche
- Räumliche Operationen
- Virtuelle Säulen
- Sowohl SQL- als auch XA-Transaktionen.
MyISAM ist die Standardspeicher-Engine für die MySQL-Versionen des relationalen Datenbankverwaltungssystems vor 5.5, die im Dezember 2009 veröffentlicht wurden. Es basiert auf dem älteren ISAM-Code, hat jedoch viele nützliche Erweiterungen.
MyISAM :
- Unterstützt keine Fremdschlüssel
- Indexstatistiken sind normalerweise ziemlich genau
- Ermöglicht schnelles Lesen aufgrund der Struktur seiner Indizes.
- Es handelt sich um Abfragen auf sehr großen Tabellen
- Unterstützt Volltextsuchindizes
Der Unterschied: InnoDB VS MyISAM
- InnoDB ist die Standard-Speicher-Engine für MySQL 5.5 und höher, während MyISAM die Standard-Speicher-Engine für MySQL 5.4 und niedriger ist.
- InnoDB unterstützt Sperren auf Zeilenebene, während MyISAM Sperren auf Tabellenebene unterstützt.
- InnoDB speichert seine Tabellen und Indizes im Tablespace, während MyISAM Tabellen, Daten und Indizes im Diskspace unter Verwendung von drei separaten Dateien speichert. (Tabellenname.FRM, Tabellenname.MYD, Tabellenname.MYI)
- InnoDB ist ein relationales DBMS (RDBMS) und verfügt daher über referenzielle Integrität und unterstützt Fremdschlüssel, einschließlich kaskadierender Löschungen und Aktualisierungen, während MyISAM kein RDBMS ist und daher referenzielle Integrität und Fremdschlüssel nicht unterstützt.
- InnoDB ist beim Schreiben schneller, während MyISAM beim Lesen schneller ist.
- InnoDB unterstützt einen großen Pufferpool für Daten und Indizes. Der MyISAM-Schlüsselpuffer ist nur für Indizes gedacht.
- In InnoDB gibt es keine Volltextsuche, wohingegen die Volltextsuche in MyISAM unterstützt wird.
- InnoDB unterstützt ACID-Eigenschaften (Atomity, Consistency, Isolation and Durability). Andererseits unterstützt MyISAM keine ACID-Eigenschaften (Atomity, Consistency, Isolation and Durability).
- InnoDB unterstützt Transaktionen (Rollback, Commit), während MyISAM keine Transaktionen unterstützt.
- MyISAM ist von Natur aus nicht dynamisch, alle zukünftigen Erweiterungen werden aufgrund seiner dynamischen Natur in InnoDB sein, zum Beispiel mit der Einführung von Version 8.0, ist klar, dass alle zukünftigen Erweiterungen auf InnoDB erfolgen werden.
- Die Leistung von InnoDB für hohe Datenmengen ist bei weitem besser als die von MyISAM.
- InnoDB bietet Zuverlässigkeit, da es ein Transaktionsprotokoll verwendet, um solche Operationen aufrechtzuerhalten, und kann daher im Fehlerfall mithilfe dieser Protokolle leicht wiederhergestellt werden. Andererseits bietet MyISAM keine Datenintegrität; Hardwarefehler und abgebrochene Vorgänge können dazu führen, dass Daten beschädigt werden.
INNODB vs. MyISAM in Tabellenform
BASIS FÜR VERGLEICH | InnoDB | MyISAM |
Art der gespeicherten MySQL-Version | InnoDB ist die Standardspeicher-Engine für MySQL 5.5 und höher. | MyISAM ist die Standardspeicher-Engine für MySQL 5.4 und niedriger. |
Tabellensperren vs. Zeilensperren | InnoDB unterstützt das Sperren auf Zeilenebene. | MyISAM unterstützt Sperren auf Tabellenebene. |
Speicherung von Tabellen, Daten und Indizes | InnoDB speichert seine Tabellen und Indizes im Tablespace. | MyISAM speichert Tabellen, Daten und Indizes im Festplattenspeicher unter Verwendung von drei separaten Dateien. (Tabellenname.FRM, Tabellenname.MYD, Tabellenname.MYI) |
Referenzielle Integrität und Fremdschlüssel | InnoDB ist ein relationales DBMS (RDBMS) und verfügt daher über referenzielle Integrität und unterstützt Fremdschlüssel, einschließlich kaskadierender Löschungen und Aktualisierungen. | MyISAM ist kein RDBMS und unterstützt daher keine referenzielle Integrität und keinen Fremdschlüssel. |
Geschwindigkeit | InnoDB ist beim Schreiben schneller. | MyISAM ist beim Lesen schneller. |
Caching | InnoDB unterstützt einen großen Pufferpool für Daten und Indizes. | Der MyISAM-Schlüsselpuffer ist nur für Indizes gedacht. |
Volltextindizierung | In InnoDB gibt es keine Volltextsuche. | Die Volltextsuche wird in MyISAM unterstützt. |
Säureeigenschaften | InnoDB unterstützt ACID-Eigenschaften (Atomity, Consistency, Isolation and Durability). | MyISAM unterstützt keine ACID-Eigenschaften (Atomity, Consistency, Isolation and Durability). |
Transaktionen | InnoDB unterstützt Transaktionen (Rollback, Commit). | MyISAM unterstützt keine Transaktionen. |
Natur | Mit dem Rollout von Version 8.0 ist klar, dass alle zukünftigen Verbesserungen auf InnoDB erfolgen werden. | MyISAM ist nicht dynamisch. |
Leistung | Die Leistung von InnoDB für hohe Datenmengen ist bei weitem besser als die von MyISAM. | Die Leistung von MyISAM für große Datenmengen ist schlechter als die von InnoDB. |
Zuverlässigkeit | InnoDB bietet Zuverlässigkeit, da es ein Transaktionsprotokoll verwendet, um solche Operationen aufrechtzuerhalten, und kann daher im Fehlerfall mithilfe dieser Protokolle leicht wiederhergestellt werden. | MyISAM bietet keine Datenintegrität; Hardwarefehler und abgebrochene Vorgänge können dazu führen, dass Daten beschädigt werden. |
Lesen Sie auch: Unterschied zwischen OORDBMS und ODBMS