Heim >Datenbank >MySQL-Tutorial >Unterstützt MyISAM Transaktionen: Ignorieren oder Ausführen?
Transaktionsunterstützung in MyISAM: Ignoriert oder führt Aktionen aus?
Beim Erkunden der Transaktionsunterstützung in InnoDB-Tabellen wundert man sich vielleicht über deren Verhalten in MyISAM . Überraschenderweise scheint auch die Ausführung derselben Transaktion auf einer MyISAM-Tabelle zu funktionieren. Es wirft jedoch Fragen darüber auf, was in diesem Fall tatsächlich passiert.
MyISAMs Transaktionsverarbeitung
Im Gegensatz zu InnoDB ist MyISAM eine nicht-transaktionale Engine. Es arbeitet im Auto-Commit-Modus, was bedeutet, dass jede Abfrage einzeln festgeschrieben wird. Dieses Verhalten gilt auch für START TRANSACTION-, COMMIT- und ROLLBACK-Vorgänge.
Aktionen ignorieren oder ausführen?
Um die Frage zu beantworten: MyISAM ignoriert diese Transaktionsbefehle. Es werden keine darauf basierenden spezifischen Aktionen ausgeführt. Die Abfragen innerhalb der Transaktion werden weiterhin sequentiell ausgeführt, aber nicht als atomare Einheit behandelt.
Architekturperspektive
Die Speicher-Engine ist eine eigenständige Ebene in der Architektur von MySQL , getrennt vom SQL-Parser. Die SQL-Schicht kommuniziert mit der Speicher-Engine über eine API auf niedrigerer Ebene. Diese Trennung ermöglicht eine gemeinsame SQL-Semantik über alle Engines hinweg, auch solche, die unterschiedliche Teilmengen von Funktionen unterstützen.
Das obige ist der detaillierte Inhalt vonUnterstützt MyISAM Transaktionen: Ignorieren oder Ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!