我有一组我偶尔会看到死锁的两个查询。
一个是离线查询,只需要偶尔运行。我想某种方法让innodb更喜欢在发生死锁而不是其他情况时回滚这个查询,有点像low_priority关键字对myisam的工作方式。
有没有办法告诉innodb在发生死锁的情况下回滚给定查询相对正常?
答案 0 :(得分:2)
There's a work-around解决方案通过使事务更新(更多)虚拟行来为事务提供更高的优先级。
InnoDB使用事务插入,更新或删除的行数作为事务的“大小”度量,并回滚较小的行。
答案 1 :(得分:1)
回答你的问题:不,没有办法。
只要前台进程没有死锁前台进程,您可以尝试提前获取所有锁? (选择... FOR UPDATE)。
另一个选项是更改后台进程以获取与前台进程相同顺序的锁。