Informationen zur Transaktionsunterstützung der MyISAM-Engine
Frage:
Können MyISAM-Tabellen Transaktionen unterstützen, wie InnoDB-Tabellen? tun?
Antwort:
MyISAM ist im Gegensatz zu InnoDB eine nicht-transaktionale Speicher-Engine in MySQL. Es zeigt jedoch ein überraschendes Verhalten, wenn es um Transaktionsbefehle geht.
Erklärung:
-
Auto-Commit-Modus: MyISAM arbeitet im Auto-Commit-Modus, was bedeutet, dass jede Anweisung sofort ausgeführt und in die Datenbank übernommen wird.
-
Ignoriert Transaktionsbefehle:Wenn Transaktionsbefehle (START TRANSACTION, COMMIT, ROLLBACK) in einer MyISAM-Tabelle angetroffen werden, werden sie einfach ignoriert.
-
Grund für fehlende Transaktionen: MyISAM-Tabellen sind Entwickelt für Leistung und Geschwindigkeit. Transaktionen würden einen Overhead verursachen und die Parallelität einschränken.
-
Speicher-Engine-Kommunikation: Der SQL-Parser kommuniziert mit Speicher-Engines wie MyISAM über eine Low-Level-API. Dies ermöglicht eine gemeinsame SQL-Syntax, während Engines Funktionen unterschiedlich implementieren.
Das obige ist der detaillierte Inhalt vonUnterstützt MyISAM Transaktionen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!