Параллельные запросы - SELECT и UPDATE - слишком быстрый выбор или слишком медленное обновление - PullRequest
0 голосов
/ 06 ноября 2019

Я запустил один скрипт в несколько потоков, который берет некоторые данные из базы данных

SELECT * from `base` LIMIT 1 where `used` = 0 

, а затем обновляет эту строку

UPDATE `base` set `used` = 1 where id ...

Проблема заключается в том, что параллельные потоки часто принимают одно и то жезапись из таблицы. ОБНОВЛЕНИЕ не может успеть избежать этого.

Что мне делать?

1 Ответ

0 голосов
/ 06 ноября 2019

Спасибо, Гордон Линофф! Я должен использовать LOCK TABLE table WRITE, а затем UNLOCK TABLES;

...