Was passiert mit InnoDB- und MyISAM-Tabellen, wenn während einer Transaktion der Strom ausfällt?

Was passiert mit InnoDB- und MyISAM-Tabellen, wenn während einer Transaktion der Strom ausfällt?

Wir haben zwei MySQL-Tabellen, eine ist InnoDB und die andere ist MyISAM. Wenn ich in einer einzigen Transaktion auf beiden Tabellen eine Reihe von Einfügungen ausführe und mittendrin der Strom ausfällt, wie ist dann der Status?

Was passiert mit den neu eingefügten Daten in den InnoDB- und MyISAM-Tabellen?

Antwort1

Innodb ist eine Transaktionsdatenbank. Sie speichert Datenbankänderungen in den Transaktionsprotokolldateien und führt mithilfe einer Prüfsummenvalidierung beim nächsten Neustart nach einem Absturz oder Stromausfall ein Commit oder ein Rollback der Transaktionen durch.

MyISAM verfügt nicht über ein Transaktionssystem, um erfolglose Transaktions-Commits rückgängig zu machen. Daher werden Datenbankbeschädigungen bei unzuverlässigen Servern mit unzuverlässiger Leistung zu einem großen Problem.

Wenn Datenintegrität und die Vermeidung von Sperrkonflikten (InnoDB-Zeilensperren vs. MyISAM-Tabellensperren) ein Muss sind, entscheiden Sie sich für InnoDB.

Antwort2

Mein Verständnis (ich bin nicht sicher) ist:

  • InnoDB führt ein vollständiges Rollback der Transaktion durch.
  • MyISAM behält alle bis zum Stromausfall eingegebenen Daten bei.

verwandte Informationen