1. 程式人生 > 其它 >併發事務帶來的問題

併發事務帶來的問題

併發事務產生的問題

髒讀

當一個事務正在訪問資料並對資料進行了修改,而這種修改還沒有提交到資料庫中,這時另外一個事務也訪問到了這個資料,然後使用這個資料。因為這個資料還是沒有提交的資料,那麼另外一個事務讀到的這個資料是“髒資料”。

丟失修改

指在一個事務讀取一個數據時,另外一個事務也訪問了改資料,那麼在第一個事務中修改了這個資料後,第二個事務也修改了這個資料。這樣第一個事務內的修改結果就被丟失,因此稱為丟失修改。

不可重複讀

指在一個事務內多次讀同一資料。在這個事務還沒有結束時,另一個事務也訪問該資料。那麼,在第一個事務中的兩次讀資料之間,由於第二個事務的修改導致第一個事務兩次讀取的資料可能不太一樣。

幻讀

幻讀與不可重複讀類似。它發生在一個事務讀取了幾行資料,接著另一個併發事務插入了一些資料時。在隨後的查詢中,第一個事務就會發現多了一些原本不存在的記錄。

幻讀與髒讀的區別

不可重複讀重點是修改比如多次讀取一條記錄發現其中某些列的值被修改,幻讀的重點在於新增或者刪除比如多次讀取一條記錄發現記錄增多或減少了。