Как ведет себя транзакция (в MySQL для меня) при параллельном запуске? - PullRequest
0 голосов
/ 06 октября 2011

Вот мой сценарий:

У меня есть таблица A, которая имеет 4 строки (id, col1, col2, col3) с индексом UNIQUE, помещенным в последние 3 строки (id является первичным ключом). Предположим, есть 2 пользователя: пользователь Foo и пользователь Bar. Если оба, Foo и Bar, запускают транзакцию, которая вставляет много строк в таблицу A, и в то же время они фиксируют свои транзакции, возможно ли, чтобы таблица представляла несоответствие для индекса UNIQUE?

Другими словами, если транзакция атомарна (и она есть), означает ли это, что до тех пор, пока она выполняется, никакая другая транзакция, которая может представлять риск для согласованности первой транзакции, не будет выполняться?

Заранее спасибо!

1 Ответ

1 голос
/ 06 октября 2011

Транзакции будут выполняться одновременно (по большей части, в зависимости от настроек уровня изоляции транзакции), но те, которые нарушают согласованность при фиксации, приведут к ошибке и должны будут откатиться.

...