精選30+雲產品,助力企業輕鬆上雲!>>>
事務特性
含義原子性(atomicity)
每個事務都是乙個整體,不可再拆分,事務中所有的sql語句要麼全部執行成功,要麼全部執行失敗。
一致性(consistency)
事務在執行前資料庫的狀態與執行後資料庫的狀態保持一致。如:轉賬前2 個人的總金額是 2000 ,轉賬後 2 個人總金額也是 2000
隔離性事務與事務之間不應該相互影響,執行時保持隔離的狀態。
永續性一旦事務執行成功,對資料庫的修改是持久的。就算關機,也是儲存下來的。
所有的事務之間保持隔離,互不影響。因為併發操作,多個使用者同時訪問同乙個資料。
併發訪問的問題
含義髒讀
乙個事務讀取到了另乙個事務中尚未提交的資料
不可重複讀
乙個事務中兩次讀取的資料 內容 不一致,要求的是乙個事務中多次讀取時資料是一致的, 這是事務 update 時引發的問題
幻讀乙個事務中兩次讀取的資料的 數量 不一致,要求在乙個事務多次讀取的資料的數量是一致的,這是 insert 或 或 delete 時引發的問題
上面的級別最低,下面的級別最高。「是」表示會出現這種問題,「否」表示不會出現這種問題。
級別名字
隔離級別
髒讀不可重複讀
幻讀資料庫預設隔離級別
1讀已提交
read uncommitted是是
是2讀未提交
read committed否是
是oracle和sql server
3可重複讀
repeatable read否否
是mysql
4序列化
serializable否否
否隔離級別越高,效能越差,安全性越高。
查詢隔離級別: select @@tx_isolation;
設定隔離級別: set global transaction isolation level 級別字串;
資料庫事務的隔離級別和MySql事務的隔離級別
髒讀是指,乙個事務的處理過程中讀取到了另乙個未提交的事務中的資料。不可重複讀指,在乙個範圍內,多次查詢去返回了不同的資料值,這是由於在查詢間隔,被另乙個事務修改並提交了。虛讀 幻讀 指,乙個事務對一批資料的name欄位做出全部修改後 將該字段的值從a改為b 未提交事務 此時另乙個事務又新增了一條資料...
Spring 事務傳播機制和資料庫的事務隔離級別
propagation 事務傳播屬性 類別傳播型別 說明支援當前事務 required 如果當前沒有事務,就新建乙個事務。transaction的預設選擇 支援當前事務 supports 就以非事務的方式執行。支援當前事務 mandatory 如果當前沒有事務,就丟擲異常。不支援當前事務 requi...
資料庫事務總結
資料庫併發訪問會出現以下4種問題 1 第一類丟失更新 事務b巢狀在事務a中,事務b已經更新,之後事務a更新失敗,a回滾,丟失了b的更新。支援事務的資料庫不會出現此問題 2 髒讀 讀到其他事務還未提交的資料。3 不可重複讀 在同一事務中,兩次讀取的資料不一致。被其他事務修改了 4 幻讀 兩次讀取的記錄...