首页 > 试题广场 >

在MySQL InnoDB中,以下场景会产生死锁:事务A:U

[单选题]
在MySQL InnoDB中,以下场景会产生死锁:
事务A:UPDATE accounts SET balance = balance - 100 WHERE id = 1;
事务A:UPDATE accounts SET balance = balance + 100 WHERE id = 2;
事务B:UPDATE accounts SET balance = balance - 200 WHERE id = 2;
事务B:UPDATE accounts SET balance = balance + 200 WHERE id = 1;
关于InnoDB处理这种死锁,以下说法正确的是:
  • InnoDB会阻止第二个事务开始,直到第一个事务提交
  • InnoDB检测到死锁后,会回滚所有相关事务
  • InnoDB检测到死锁后,会选择回滚代价较小的事务,另一个事务继续执行
  • InnoDB不会检测死锁,两个事务会无限等待直到锁超时

这道题你会答吗?花几分钟告诉大家答案吧!