1

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

更新を実行するときに正しい値を使用しない限り?

4

0 に答える 0