資料庫的髒讀,幻讀,不可重複讀

2021-10-03 21:54:07 字數 499 閱讀 1498

參考:

1.髒讀

指乙個事務a正在訪問資料,並且對該資料進行了修改,但是這種修改還沒有提交到資料庫中(也可能因為某些原因rollback了)。這時候另外乙個事務b也訪問這個資料,然後使用了這個被a修改的資料,那麼這個資料就是髒的,並不是資料庫中真實的資料。這就被稱作髒讀。

2.幻讀

指乙個事務a對乙個表中的資料進行了修改,而且該修改涉及到表中所有的資料行;同時另乙個事務b也在修改表中的資料,該修改是向表中插入一行新資料。那麼經過這樣一番操作後,操作事務a的使用者就會發現表中還有沒修改的資料行,就像發生了幻覺一樣。這就被稱作幻讀。

3.不可重複讀

指在乙個事務a內,多次讀同乙個資料,但是事務a沒有結束時,另外乙個事務b也訪問該同一資料。那麼在事務a的兩次讀資料之間,由於事務b的修改導致事務a兩次讀到的資料可能是不一樣的。這就發生了在乙個事務內兩次讀到的資料不一樣,這就被稱作不可重複讀。

資料庫幻讀 髒讀 不可重複讀

要理解幻讀 髒讀 不可重複讀,必須先搞清楚事務的隔離級別 資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable 這四個級別可以逐個解決髒讀 不可重複讀 幻讀 這幾類問題。隔離級別 髒讀不可重...

資料庫髒讀 不可重複讀 幻讀

資料庫髒讀 不可重複讀 幻讀 1.髒讀 髒讀就是指當乙個事務正在訪問資料,並且對資料進行了修改,而這種修改還沒有提交到資料庫中,這時,另外乙個事務也訪問這個資料,然後使用了這個資料。2.不可重複讀 是指在乙個事務內,多次讀同一資料。在這個事務還沒有結束時,另外乙個事務也訪問該同一資料。那麼,在第乙個...

資料庫髒讀,幻讀,不可重複讀

指乙個事務a正在訪問資料,並且對該資料進行了修改,但是這種修改還沒有提交到資料庫中 也可能因為某些原因rollback了 這時候另外乙個事務b也訪問這個資料,然後使用了這個被a修改的資料,那麼這個資料就是髒的,並不是資料庫中真實的資料。這就被稱作髒讀。解決辦法 把資料庫事務隔離級別調整到read c...