Будут ли у меня тупики при использовании транзакций БД laravel? - PullRequest
0 голосов
/ 20 декабря 2018

Я использую 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 сделают это самостоятельно, и я просто использую транзакции и не думаю о взаимоблокировках.заранее спасибо.

...