Heim  >  Artikel  >  Datenbank  >  Was sind die Unterschiede zwischen den beiden MySQL-Engines?

Was sind die Unterschiede zwischen den beiden MySQL-Engines?

一个新手
一个新手Original
2017-10-13 10:42:421767Durchsuche

Innodb-Engine

Innodb-Engine bietet Unterstützung für Datenbank-ACID-Transaktionen und implementiert vier Isolationsstufen des SQL-Standards. Die Engine bietet auch Sperren auf Zeilenebene und Fremdschlüsseleinschränkungen. Ihr Entwurfsziel besteht darin, Datenbanksysteme mit großer Kapazität zu verarbeiten. Es handelt sich tatsächlich um ein vollständiges Datenbanksystem, das auf dem MySQL-Backend basiert der Speicher für Pufferdaten und Indizes. Allerdings unterstützt die Engine keine Indizes vom Typ FULLTEXT und speichert nicht die Anzahl der Zeilen in der Tabelle. Bei SELECT COUNT(*) FROM TABLE muss die gesamte Tabelle gescannt werden. Diese Engine ist natürlich die erste Wahl, wenn mit Datenbanktransaktionen gearbeitet werden soll. Da die Sperrgranularität kleiner ist, sperren Schreibvorgänge nicht die gesamte Tabelle. Wenn die Parallelität hoch ist, verbessert die Verwendung der Innodb-Engine die Effizienz. Die Verwendung von Sperren auf Zeilenebene ist jedoch nicht absolut. Wenn MySQL beim Ausführen einer SQL-Anweisung den zu scannenden Bereich nicht ermitteln kann, sperrt die InnoDB-Tabelle auch die gesamte Tabelle.

MyIASM-Engine

MyIASM ist die Standard-Engine von MySQL, bietet jedoch keine Unterstützung für Datenbanktransaktionen und unterstützt auch keine Sperren auf Zeilenebene und Fremdschlüssel ) oder UPDATE (Beim Aktualisieren) von Daten muss der Schreibvorgang die gesamte Tabelle sperren, und die Effizienz ist geringer. Im Gegensatz zu Innodb speichert MyIASM jedoch die Anzahl der Zeilen in der Tabelle. Wenn Sie also COUNT(*) FROM TABLE auswählen, müssen Sie nur die gespeicherten Werte direkt lesen, ohne einen vollständigen Tabellenscan durchzuführen. Wenn die Tabelle weitaus mehr Lesevorgänge als Schreibvorgänge hat und keine Unterstützung von Datenbanktransaktionen erfordert, ist MyIASM ebenfalls eine gute Wahl.

Hauptunterschiede:

1. MyIASM ist nicht transaktionssicher, während InnoDB transaktionssicher ist

2. Die Granularität von MyIASM-Sperren erfolgt auf Tabellenebene, während InnoDB unterstützt Zeilenebenensperre

3. MyIASM unterstützt den Volltextindex, aber InnoDB unterstützt keinen Volltextindex

4. MyIASM ist relativ einfach und effizienter als die Verwendung von InnoDB MyIASM

5. MyIASM-Tabellen werden in Dateiform gespeichert, was für die plattformübergreifende Verwendung praktischer ist

Anwendungsszenarien:

1. Bietet Hochgeschwindigkeitsspeicherung und -abruf sowie Volltextsuchfunktionen. Wenn Sie in Ihrer Anwendung eine große Anzahl ausgewählter Vorgänge ausführen, sollten Sie sich für MyIASM entscheiden.

2 B. ACID-Transaktionsunterstützung, wenn Sie in Ihrer Anwendung eine große Anzahl von Einfüge- und Aktualisierungsvorgängen durchführen, sollten Sie InnoDB wählen

Das obige ist der detaillierte Inhalt vonWas sind die Unterschiede zwischen den beiden MySQL-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