Spring事務的更新丟失

2021-08-07 04:14:25 字數 583 閱讀 7597

更新丟失:

如果多個執行緒操作,基於同乙個查詢結構對錶中的記錄進行修改,那麼後修改的記錄將會覆蓋前面修改的記錄,前面的修改就丟失掉了,這就叫做更新丟失。

serializable可以防止更新丟失問題的發生。其他的三個隔離級別都有可能發生更新丟失問題。

serializable雖然可以防止更新丟失,但是效率太低,通常資料庫不會用這個隔離級別,所以我們需要其他的機制來防止更新丟失:

樂觀鎖和悲觀鎖不是資料庫中真正存在的鎖,只是人們在解決更新丟失時的不同的解決方案,體現的是人們看待事務的態度。

悲觀鎖:認為每一條sql語句都會出現更新丟失的情況

隔離級別不設定為serializable,防止效率過低。

在查詢時手動加上排他鎖。

如果資料庫中的資料查詢比較多而更新比較少的話,悲觀鎖將會導致效率低下。

樂觀鎖:認為每一條sql語句都不會出現更新丟失的情況

在表中增加乙個version欄位,在更新資料庫記錄是將version加一,從而在修改資料時通過檢查版本號是否改變判斷出當前更新基於的查詢是否已經是過時的版本。

如果資料庫中資料的修改比較多,更新失敗的次數會比較多,程式需要多次重複執行更新操作。

mysql事務更新丟失 關於事務和丟失更新

1.1.1 事務的特性 面試 事務四大特性 原子性 atomicity 強調的事務的不可分割.一致性 consistency 強調的事務的執行前後,資料庫的的完整性保持一致.隔離性 isolation 強調的事務的併發的訪問,乙個事務的執行,不應該受到另乙個事務的打擾.永續性 durability ...

關於事務 丟失更新

事務四大特性 原子性 atomicity 強調的事務的不可分割.一致性 consistency 強調的事務的執行前後,資料庫的的完整性保持一致.隔離性 isolation 強調的事務的併發的訪問,乙個事務的執行,不應該受到另乙個事務的打擾.永續性 durability 強調的事務結束之後,資料就永久...

關於事務和丟失更新

事務四大特性 原子性 atomicity 強調的事務的不可分割.一致性 consistency 強調的事務的執行前後,資料庫的的完整性保持一致.隔離性 isolation 強調的事務的併發的訪問,乙個事務的執行,不應該受到另乙個事務的打擾.永續性 durability 強調的事務結束之後,資料就永久...