Я использую MySQL и Laravel.Представьте себе ситуацию, когда у меня две транзакции выполняются с одной и той же ручкой, сначала обновляются table1 и table2 в следующем порядке.вторая транзакция обновляет table2 и table1 в следующем порядке.поэтому у меня есть 3 сценария, и меня интересует, какой из этих сценариев произойдет.
T1 - transaction 1;
T2 - transaction 2;
1 сценарий) T1 блокирует table1.тем временем T2 блокирует table2.оба стола заблокированы.через некоторое время они оба разблокируют свою заблокированную таблицу, поэтому T1 сможет изменить table1, а T2 сможет изменить table1.все закончено, никаких тупиков. Сценарий
2) Ситуация та же, что и выше, но T1 и T2 не разблокируют свои таблицы, если они не закончили всю свою работу (я имею в виду изменение обеих таблиц),они бесконечно ждут разблокировки второго стола.поэтому тупик.
3 сценарий) T1 или T2 блокируют обе таблицы, поэтому вторая транзакция будет ждать, пока параллельная транзакция завершит свою работу, и разблокирует обе таблицы.затем он также блокирует обе таблицы, и все в порядке, никаких тупиков.
, какой из этих сценариев произойдет?может, никто из них?Я надеюсь, что вы, ребята, поможете мне ответить на этот вопрос, так что я буду знать, что мне следует управлять кодом, чтобы избежать тупиков транзакций, или транзакции laravel сделают это самостоятельно, и я просто использую транзакции и не думаю о взаимоблокировках.заранее спасибо.