1. 程式人生 > >MySQL事物的4種併發問題(髒讀,幻讀,不可重複度,丟失更新)

MySQL事物的4種併發問題(髒讀,幻讀,不可重複度,丟失更新)

由於MySQL事物的隔離級別不同,可以造成一些併發問題:

一、髒讀:

    事物A修改了資料表中的一個數據num,但是沒有提交,此時事物B讀取了num,事物A rollback ,num改變為原來的值,那麼事物B讀到的num即為髒資料。

二、幻讀:

    事物A在用一個表,此時事物B在表中增加/刪除了一條資料,A發現多了/少了一條資料,即為幻讀。

三、不可重複度:

    A在用num為1,B將num改為2,且已經提交,A再讀num為2,1 != 2 ,重複讀取一個數據,前後不一致。

四、丟失更新:

    A、B同時操作一條資料,B的修改覆蓋了A的,即出現丟失更新。

要解決以上問題需要了解MySQL的事物隔離級別,以及鎖機制,下篇再說。