作用:為了解決併發訪問時產生的問題
未提交讀(read uncommitted):
併發是最大的,容易造成髒讀
小紅有200元
小紅爸有600元
小紅爸給小紅打1000元,當小紅爸給小紅打錢,小紅卡變成1200元,小紅爸還沒去扣減,小紅查自己卡,發現是1200元,這資料就是髒讀,因為小紅的爸打錢這事務還沒有完成,當扣減小紅爸錢發現不夠,回滾事務。
提交讀(read committed):oracle
讀事務不影響寫事務
小紅有200元
小紅查詢銀行卡有200元,這時小紅爸刷了這張卡50元買煙,小紅查了明細返回繼續看錢,變成了150元,她還在處於這個事務中,卻讀出了2個值
可重複讀(repeated read):mysql
小紅有200元
小李有1000元
小紅和小李的資料都在這張表裡面,當讀小紅的200元時,有人操作小李的資料(將其刪除),而產生幻讀
序列化(serializable):
效能極低,一般不用(乙個資料庫這張表就為你乙個服務了)
事務的隔離級別舉例 事務的隔離級別
乙個事務是乙個完整的業務邏輯單元,不能再分,要麼全部執行成功,要麼全部失敗。比如 a給b轉賬100元,a的銀行卡就會少100元,b的銀行卡就會多100元,整個過程要麼全部執行成功,要麼全部失敗。a 原子性。事務是最小的業務邏輯單元。b 一致性。乙個事務必須保證多條dml語句同時成功或失敗。c 隔離性...
事務的隔離級別舉例 JDBC 事務隔離級別
本文總結了 jdbc 事務隔離級別。事務隔離級別定義了在乙個事務中,哪些資料是對當前執行的語句 可見 的。在併發訪問資料庫時,事務隔離級別定義了多個事務之間對於同個目標資料來源訪問時的可交叉程度。可交叉程度可分為以下幾類。可交叉程度 dirty reads 髒讀 當乙個事務能看見另外乙個事務未提交的...
事務的隔離級別舉例 JDBC事務隔離級別
一組要麼同時執行成功,要麼同時執行失敗的sql語句。是資料庫操作的乙個執行單元。斷開與資料庫的連線 表示乙個事務內的所有操作是乙個整體,要麼全部成功,要麼全部失敗 表示乙個事務內有乙個操作失敗時,所有的更改過的資料都必須回滾到修改前狀態 事務檢視資料時資料所處的狀態,要麼是另一併發事務修改它之前的狀...