InnoDB и уровни изоляции - не повторяется ли плохо?

Я читал о InnoDB's уровни изоляции и это имеет смысл по большей части, но то, что я не понимаю, почему unrepeatable reads плохо? Не должно ли быть наоборот?

Например:

Допустим, у нас был столбец запасов для продажи продуктов, и каждый раз, когда кто-то покупал товар, мы брали 1 товар из столбца с Repeatable read или же serializable уровни изоляции не повредят ли это целостности данных?

Например:

TX A: start transaction;
TX B: set session transaction isolation level repeatable read;
TX B: start transaction;
TX A: select stock from products;               -- val = 8
TX B: select stock from products;               -- val = 8
TX A: update products set stock = stock - 1;    -- val = 7
TX B: select stock from products;               -- val = 8
TX A: commit
TX B: select stock from products;               -- val = 8, incorrect!
TX B: commit;
TX B: select stock from products;               -- val = 7

Разве он использует значение ПРАВИЛЬНО при запуске обновления?

0 ответов

Другие вопросы по тегам