mysql драйвером (пакет 'mysql'). Если по API приходят практически одновременно два запроса на изменение одной и той же таблицы (update одной записи и delete другой записи, например), то я получаю Error: ER_LOCK_DEADLOCK: Deadlock found when trying to get lock; try restarting transaction.
Какие есть стандартные способы борьбы с этим недугом?
Через очередь менять данные
не уверен, что точно сработает, но можно попробовать заблокировать все нужные строки, чтобы другая транзакция их не успела заблокировать в середине транзакции SELECT FOR UPDATE
Обсуждают сегодня