Обновления MySQL с высокой степенью параллелизма и транзакции - PullRequest
0 голосов
/ 25 октября 2019

Это вопрос из двух частей о высоком параллелизме.

Часть 1

Если следующий запрос, который обновляет только одну строку из пула постоянно уменьшающихся строк, вызывается с массивнымпараллелизм: есть ли вероятность того, что два запроса обновят одну и ту же строку, так что allocated установлен на 1, где allocated уже уже установлен на 1 другим запросом, выполняющимся одновременно?

UPDATE foo SET allocated = 1 WHERE allocated = 0 LIMIT 1

Часть 2

Если предположить нет для части 1, существует ли возможность, если теперь тот же запросзаключен в транзакцию с некоторыми другими SELECT запросами только для чтения, которые могут появляться до или после того же UPDATE запроса выше?


Обратите внимание, что это несколько похоже на предыдущийвопрос , но у этого вопроса не было второй части.

...