事務隔離級別

2022-09-19 11:30:17 字數 820 閱讀 1712

9.7、事務隔離性

a教室和b教室中間有一道牆,這道牆可以很厚,也可以很薄,事務的隔離級別

牆越厚,隔離級別越高

事務和事務之間的隔離級別有哪些?4個級別

1)讀未提交:read uncommitted (最低的隔離級別)

事務a可以讀取到事務b未提交的資料。

這種隔離級別存在問題:就是髒讀現象(dirty read),稱為讀到了髒資料。

這種隔離級別一般都是理論上的,大多數的資料庫隔離級別都是2檔起步

2)讀已提交:read committed

事務a只能讀取到事務b提交之後的資料。

這種隔離級別解決了髒讀現象。

不可重複讀取資料:在事務開啟之後,第一次讀到的資料是3條,當前事務還沒有結束,可能第二次再讀取的時候,讀到的資料是4條,3不等於4。

這種隔離級別是比較真實的資料,每一次讀到的資料是絕對真實

oralce資料庫預設的隔離級別是:read committed

3)可重複讀:repeatable read(提交之後也讀不到,永遠讀取的是剛開啟事務時的資料)

可重複讀取:事務a開啟後,不管是多久,每一次在事務a中讀取到的資料都是一致的。即使事務b將資料已經修改

並且提交了,事務a讀取到的資料還是沒有發生改變,這就是可重複讀

可重複讀取解決了不可重複讀取資料

存在問題:每一次讀取到的資料都是幻象,不夠真實。

mysql中預設的事務隔離級別是可重複讀  repeatable read

4)序列化/序列化:serializable (最高的隔離級別),效率最低,解決了所有問題

這種隔離級別表示事務排隊,不能併發

事務隔離級別

1 serializable 最嚴格的spring事務隔離級別,事務序列執行,資源消耗最大 3 read committed 大多數主流資料庫的預設spring事務隔離等級,保證了乙個事務不會讀到另乙個並行事務已修改但未提交的資料,避免了 髒讀取 該級別適用於大多數系統。4 read uncommi...

事務隔離級別

四種隔離級別 隔離級別 髒 讀不可重複讀取 幻 像讀操作未提交 read uncommitted 是是 是讀操作已提交 read committed 否是 是可重複讀 repeatable read 否否 是快照否否 否可序列讀 serializable 否否 否 sql server 還支援使用行...

事務隔離級別

需要防止的現象和事務隔離級別 ansi iso sql 標準 sql92 定義了四種事務隔離級別 transaction isolation level 這四種隔離級別所能提供的事務處理能力各不相同。這些事務隔離級別是針對三種現象定義的,在併發事務執行時,需要阻止這三種現象 中的一種或多種發生。三種...