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!
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