資料庫併發操作會帶來哪些問題及原因

2021-07-29 03:57:06 字數 490 閱讀 5703

(1)丟失更新

當兩個或多個事物讀入同一資料並修改,會發生丟失更新問題,即後乙個事物更新的結果被前一事務所做更新覆蓋 即當事務a和b同事進行時,事務a對資料已經改變但並未提交時b又對同一資料進行了修改(注意此時資料是a還未提交改變的資料),到時a做的資料改動丟失了

(2)不可重複讀

當兩個資料讀取某個資料後,另一事務執行了對該資料的更新,當前一事務再次讀取該資料(希望與第一次讀取的是相同的值)時,得到的資料與前一次的不一樣,這是由於第一次讀取資料後,事務b對其做了修改,導致再次讀取資料時與第一次讀取的資料不想同

(3)讀『髒資料』

當乙個事務修改某個資料後,另一事務對該資料進行了讀取,由於某種原因前一事務撤銷了對改資料的修改,即將修改過的資料恢復原值,那麼後一事務讀到的資料與資料可得不一致,稱之為讀髒資料

注意:還有乙個叫「幽靈資料」  幽靈資料與髒資料類似,不過幽靈資料是指事務提交之後讀到的資料,但是在讀取之後又進行了對前一事務的恢復,而髒資料是指並未提交前讀取的資料

資料庫併發操作帶來的問題

1 丟失更新 當兩個或多個事物讀入同一資料並修改,會發生丟失更新問題,即後乙個事物更新的結果被前一事務所做更新覆蓋 即當事務a和b同事進行時,事務a對資料已經改變但並未提交時b又對同一資料進行了修改 注意此時資料是a還未提交改變的資料 到時a做的資料改動丟失了 2 不可重複讀 當兩個資料讀取某個資料...

資料庫 併發訪問帶來的問題

資料庫是乙個共享的資料資源。為了提高使用效率,資料庫基本上都是多使用者的,即允許多個使用者併發地訪問資料庫中的資料,如飛機訂票資料庫系統 銀行儲蓄資料庫系統等。在這樣的系統中,同一時刻並行執行的事務可多達數百個。如果對這種併發訪問不加以控制,就會破壞資料的一致性,出現丟失修改 髒讀和不可重複讀這些問...

資料庫事務併發帶來的問題 及並行

併發與並行的區別 併發 當有多個執行緒在操作時 如果系統只有乙個cpu 則它根本不可能真正同時進行乙個以上的執行緒,它只能 把cpu執行時間劃分成若干個時間段,再將時間段分配給各個執行緒執行,在乙個時間段的執行緒 執行時,其它執行緒處於掛起狀。這種方式我們稱之為併發 concurrent 並行 當系...