stalxed
Новичок
@fixxxer, doctrine 2 не поддерживает это(insert ignore, insert update if exists).
Я уже всё, что можно о транзакциях прочитал.
Пути решения, которые я понял:
1) INSERT IGNORE
2) Минимизация транзакции и повтор в случае deadlock.
3) Лочить всю таблицу целиком.
4) Создание таблицы семафоров.
Пока попробую пункт 2, если что перейду на 3.
Ну тогда другая транзакция легко может вклинится между select и insert и вставить дубликат.Касаемо самого select for update - можно попробовать снизить уровень изоляции транзакции до READ COMMITTED, в этом случае вроде негде полочиться.
Я уже всё, что можно о транзакциях прочитал.
Пути решения, которые я понял:
1) INSERT IGNORE
2) Минимизация транзакции и повтор в случае deadlock.
3) Лочить всю таблицу целиком.
4) Создание таблицы семафоров.
Пока попробую пункт 2, если что перейду на 3.
Последнее редактирование: