Допустим, я запустил следующий SQL из одного процесса, используя PHP:
START TRANSACTION;
SELECT records FROM testing_table LIMIT 1 FOR UPDATE;
Коммит находится в более поздней части кода. Для простоты, скажем, коммит после usleep($x)
, где $x
случайное целое число от 100 до 1000
В течение этого периода сна у меня есть другой процесс, который запускает точно такой же код выше. Будет ли он ждать разблокировки первого ряда или просто получит второй ряд?
Если бы он ожидал разблокировки первой строки, есть ли способ заставить второй процесс читать вторую строку вместо этого?
Задача ещё не решена.
Других решений пока нет …