gpt4 book ai didi

MySQL InnoDB 自愿事务成为死锁受害者

转载 作者:行者123 更新时间:2023-11-29 02:42:52 25 4
gpt4 key购买 nike

在 MySQL(5.6 或更高版本)中是否有一种机制可以让事务(或语句)在陷入死锁的情况下自愿成为受害者?


在启用 InnoDB 死锁检测的情况下,当识别出死锁时,InnoDB 会确定要终止哪个事务(成为受害者)以允许其他事务继续进行。有一种算法用于确定哪个交易是受害者。

我的问题是我们是否可以在语句中使用任何会影响算法的语法,这基本上会告诉 InnoDB“如果此语句/事务涉及死锁,则选择我作为受害者。”

最佳答案

"It is a far, far better thing I do..." — TRX #8675309

当前在死锁情况下终止事务的算法是终止更改较少行的事务。在平局的情况下,选择是由 InnoDB 内部代码任意做出的;我们不知道选择的原因。

因此,一个事务可以“自愿”的唯一方法是比另一个事务更改更少的行。

关于MySQL InnoDB 自愿事务成为死锁受害者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47758614/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com