隔離級別都與問題相對應,資料庫操作常見的問題:
1 髒讀: 乙個事務可以讀取另乙個事務未提交的資料
2 不可重複讀: 乙個事務連續兩次執行某個讀操作,返回的結果不一致,被修改了
3 虛讀 :乙個事務連續兩次執行某個讀操作,返回的結果不一致,返回的紀錄數目有改變
不可重複讀 與 虛讀 的區別:
不可重複讀,強調的是,第二次返回的結果中,某個條目被修改過,比如某些欄位被修改
虛讀,強調的是,第二次返回結果中,屬於第一次返回結果的條目沒有任何變化,但是返回條目的數目會變化
資料庫事務隔離級別
1 read uncommitted 髒讀的那個級別
2 read committed 解決髒讀問題,提交了才能被其它事務讀到 (大多數資料庫的預設事務等級)
3 repeatable read 可重複讀,如何實現:規定乙個事務不能修改被其它事務讀但是未提交的事務
4 serializable 最高的事務隔離級別 如何實現:所有的事務都序列執行
repeatable read是如何實現?
規定乙個事務不能修改其它事務讀但是未提交的事務
這樣就保證了乙個事務中第二次讀到的資料都是沒有被修改過得
為什麼repeatable read隔離級別,虛讀問題沒有被解決掉?
只對修改作了限制,如果兩次讀之間進行了插入或者刪除操作,滿足沒有修改其它事務讀但未提交的事務,結果,兩次讀的結果還是會不一致,所以虛讀問題沒有被解決
虛讀問題解決,serializable隔離級別?
序列化執行,很容易理解,我在乙個事務中,執行兩次讀操作,在此期間,沒有其它事務在執行,必須等我執行完以後才會被執行,因為是序列,大家排隊,所以結果不可能不一致。
資料庫事務隔離級別
資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...
資料庫事務隔離級別
資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable,這四個級別可以逐個解決髒讀 不可重複讀 幻讀這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted rea...
資料庫事務隔離級別
資料庫事務的隔離級別有4個,由低到高依次為read uncommitted read committed repeatable read serializable 這四個級別可以逐個解決髒讀 不可重複讀 幻讀 這幾類問題。可能出現 不會出現 髒讀不可重複讀 幻讀read uncommitted re...