為什麼會出現「髒讀」?
因為沒有「select」操作沒有規矩。
為什麼會出現「不可重複讀」?
因為「update」操作沒有規矩。
為什麼會出現「幻讀」?
因為「insert」和「delete」操作沒有規矩。
「讀未提(read uncommitted)」能預防啥?
啥都預防不了。
「讀提交(read committed)」能預防啥?
使用「快照讀(snapshot read)」,避免「髒讀」,但是可能出現「不可重複讀」和「幻讀」。
「可重複讀(repeated red)」能預防啥?
使用「快照讀(snapshot read)」,鎖住被讀取記錄,避免出現「髒讀」、「不可重複讀」,但是可能出現「幻讀」。
「序列化(serializable)」能預防啥?
排排坐,吃果果,有效避免「髒讀」、「不可重複讀」、「幻讀」,不過效果誰用誰知道。
詳情參考資料庫常用的事務隔離級別都有哪些?都是什麼原理? 資料庫併發問題與隔離級別
資料庫的事務在併發執行的時候,如果不考慮隔離性,就會產生以下幾種問題 髒讀是指在乙個事務處理過程裡讀取了另乙個未提交的事務中的資料。假設事務1正在訪問資料並且對資料進行了修改,而這種修改還沒有提交到資料庫中,這時,事務2也訪問這個資料,然後使用了這個資料。因為這個資料是還沒有提交的資料,那麼事務2讀...
資料庫事務 併發問題及隔離級別
四 事務的隔離級別 我們學習資料庫,經常看到資料庫事務,acid事務等相關的概念,拋開資料庫,可以將事務更廣泛的定義為 乙個或多個原子操作組合而成的執行單元。更通俗的講,就是將幾件小事或是幾個步驟 起來作為乙個整體來處理對待。而資料庫事務,即一條或多條不可再分的資料操作指令組合而成的執行單元。乙個標...
事務併發問題和隔離級別
事務有四個屬性,acid。事務併發會造成三個問題 髒讀,不可重複讀,幻讀。髒讀 事務a讀了事務b更新的資料,然後事務b回滾撤銷了,事務a讀取的資料就是髒讀。不可重複讀 事務a讀取資料num後,事務b對其修改,事務a再次讀取資料num,前後不一致,這情況為不可重複讀。幻讀 事務a讀取資料 一張表 事務...