12 Unterschied zwischen INNODB und MyISAM

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

  1. 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.
  2. InnoDB unterstützt Sperren auf Zeilenebene, während MyISAM Sperren auf Tabellenebene unterstützt.
  3. 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)
  4. 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.
  5. InnoDB ist beim Schreiben schneller, während MyISAM beim Lesen schneller ist.
  6. InnoDB unterstützt einen großen Pufferpool für Daten und Indizes. Der MyISAM-Schlüsselpuffer ist nur für Indizes gedacht.
  7. In InnoDB gibt es keine Volltextsuche, wohingegen die Volltextsuche in MyISAM unterstützt wird.
  8. InnoDB unterstützt ACID-Eigenschaften (Atomity, Consistency, Isolation and Durability). Andererseits unterstützt MyISAM keine ACID-Eigenschaften (Atomity, Consistency, Isolation and Durability).
  9. InnoDB unterstützt Transaktionen (Rollback, Commit), während MyISAM keine Transaktionen unterstützt.
  10. 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.
  11. Die Leistung von InnoDB für hohe Datenmengen ist bei weitem besser als die von MyISAM.
  12. 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 VERGLEICHInnoDBMyISAM
Art der gespeicherten MySQL-VersionInnoDB 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. ZeilensperrenInnoDB unterstützt das Sperren auf Zeilenebene.  MyISAM unterstützt Sperren auf Tabellenebene.  
Speicherung von Tabellen, Daten und IndizesInnoDB 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üsselInnoDB 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.  
GeschwindigkeitInnoDB ist beim Schreiben schneller.  MyISAM ist beim Lesen schneller.    
CachingInnoDB unterstützt einen großen Pufferpool für Daten und Indizes.Der MyISAM-Schlüsselpuffer ist nur für Indizes gedacht.  
VolltextindizierungIn InnoDB gibt es keine Volltextsuche.  Die Volltextsuche wird in MyISAM unterstützt.    
SäureeigenschaftenInnoDB unterstützt ACID-Eigenschaften (Atomity, Consistency, Isolation and Durability).MyISAM unterstützt keine ACID-Eigenschaften (Atomity, Consistency, Isolation and Durability).  
TransaktionenInnoDB unterstützt Transaktionen (Rollback, Commit).  MyISAM unterstützt keine Transaktionen.  
NaturMit dem Rollout von Version 8.0 ist klar, dass alle zukünftigen Verbesserungen auf InnoDB erfolgen werden.  MyISAM ist nicht dynamisch.
LeistungDie 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ässigkeitInnoDB 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