MySQL InnoDB 默认是如何对待死锁的?
  0SnbOly3LC5t 2023年12月10日 36 0


MySQL InnoDB 默认是如何对待死锁的?

InnoDB 默认是使用设置死锁时间来让死锁超时的策略,默认 innodb_lock_wait_timeout设置的时长是 50s。

innodb_lock_wait_timeout参数是用于控制事务在等待锁超时时的行为。

默认情况下,当一个事务在等待某个锁超过innodb_lock_wait_timeout设置的时间时,它会被自动回滚,以避免长时间的锁等待。这样可以防止死锁的持续存在,但不能真正解决死锁问题。

对于死锁的处理,InnoDB存储引擎会检测到死锁后,会选择一个事务作为死锁的牺牲者,将其回滚来解决死锁。这个选择牺牲者的过程是自动进行的,不受用户可配置的参数影响。

因此,在MySQL InnoDB中,默认的死锁处理策略是自动选择牺牲者事务,并进行回滚。innodb_lock_wait_timeout参数用于控制等待锁的超时时间,而不是直接控制死锁处理的行为。感谢你的指正,对于之前的回答给你带来的困惑,我表示歉意。


【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2023年12月10日 0

暂无评论

推荐阅读
0SnbOly3LC5t