InnoDB和MyISAM表在交易过程中断电会发生什么?

我们有两个MySQL表,一个是InnoDB,另一个是MyISAM。 如果我在两个表上的一个事务中执行一块插入,并且中间断电,那么状态是什么?

InnoDB和MyISAM表中新插入的数据会发生什么?

Innodb是一个事务数据库,它将数据库更改存储在事务日志文件中,使用校验和validation,在崩溃或断电后的下次重新启动时提交或回滚事务。

MyISAM没有一个事务处理系统来回滚不成功的事务提交。 因此,数据库损坏成为带Flakeyfunction的Flaky服务器中的主要问题。

如果数据完整性和避免锁争用(innodb行锁vs myisam表锁)是必须的,你去与Innodb。

我的理解(我不确定)是:

  • InnoDB将完全回滚事务。
  • MyISAM将保留任何刚刚插入电源故障点的数据。