如果在事务期间电源发生故障,InnoDB 和 MyISAM 表会发生什么情况?

如果在事务期间电源发生故障,InnoDB 和 MyISAM 表会发生什么情况?

我们有两张 MySQL 表,一张是 InnoDB,另一张是 MyISAM。如果我在单个事务中对两张表执行大量插入操作,而中途断电,情况会怎样?

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

答案1

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

MyISAM 没有事务系统来回滚不成功的事务提交。因此,数据库损坏成为不稳定服务器和不稳定能力的主要问题。

如果必须保证数据完整性并避免锁争用(innodb 行锁与 myisam 表锁),则选择 Innodb。

答案2

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

  • InnoDB 将完全回滚该事务。
  • MyISAM 将保留断电前插入的所有数据。

相关内容