Php 使用laravel DB事务时是否会出现死锁?
我正在使用MySQL和Laravel。想象一下,当两个事务在同一个tame上执行时,首先按照以下顺序更新表1和表2。第二个事务按以下顺序更新表2和表1。我有3个场景,我对其中哪一个场景感兴趣Php 使用laravel DB事务时是否会出现死锁?,php,mysql,laravel,transactions,deadlock,Php,Mysql,Laravel,Transactions,Deadlock,我正在使用MySQL和Laravel。想象一下,当两个事务在同一个tame上执行时,首先按照以下顺序更新表1和表2。第二个事务按以下顺序更新表2和表1。我有3个场景,我对其中哪一个场景感兴趣 T1 - transaction 1; T2 - transaction 2; 1场景)T1锁定表1。同时,T2锁定了表2。两张桌子都锁着。一段时间后,他们两人都将解锁锁定的表,以便T1能够修改表1,T2能够修改表1。一切都结束了,没有死锁 2场景)情况与上述相同,但T1和T2不会解锁它们的表,除非它们
T1 - transaction 1;
T2 - transaction 2;
1场景)T1锁定表1。同时,T2锁定了表2。两张桌子都锁着。一段时间后,他们两人都将解锁锁定的表,以便T1能够修改表1,T2能够修改表1。一切都结束了,没有死锁
2场景)情况与上述相同,但T1和T2不会解锁它们的表,除非它们完成了所有工作(我的意思是修改了两个表)。他们无限期地等待第二张桌子被解锁。所以僵局
3场景)T1或T2锁定这两个表,所以第二个事务将等待并发事务完成其工作并解锁这两个表。然后它也锁上了桌子,一切都很好,没有死锁
以下哪种情况会发生?也许没有?我希望你们能帮我回答这个问题,这样我就知道我应该管理代码以避免事务死锁,还是laravel事务将自己做到这一点,我只使用事务而不考虑死锁。先谢谢你