Spring中的事務隔離級別

2021-09-06 16:37:38 字數 542 閱讀 2755

事務隔離級別定義乙個事務可能受其他事務併發活動的影響程度。另乙個考慮事務隔離級別的角度,是把它想象為事務對於它處理的資料的自私程度。

事務的隔離要解決的問題有3個:

1,髒讀,即乙個事務讀到另乙個事務還沒有提交的資料。如果另乙個事務失敗了,回滾了,那麼第乙個事務讀到的資料就是無效的資料。這就是髒讀。

2,不可重複讀,不可重複讀發生在乙個事務裡兩次查詢同乙個資料,發現查詢結果不一樣。這是因為在該事務的兩次查詢之間,有另乙個事務更新了該資料。

3,幻讀,幻讀和不可重複讀比較類似。當乙個事務t1,第一次查詢了一些行,第二次又查詢了一些行,發現兩次查詢出來的行個數不一樣,或者多了一些行,或者少了一些行,好像出現了幻覺一樣。這是因為在兩次查詢之間,有另一事務更新了符合第乙個事務查詢條件的行。

對比不可重複讀和幻讀,就可以很好的理解它們的區別。不可重複讀針對的是一行或者說乙個資料,而幻讀針對的是多行資料。

spring的事務隔離級別有五種,其中的四種和資料庫的隔離級別定義是一樣的,即讀未提交,讀已提交,可重複讀,序列化。spring還有乙個隔離級別,是使用後端資料庫的預設的隔離級別。

spring事務隔離級別

在spring中定義了5中不同的事務隔離級別 1.isolation default 一般情況下使用這種配置既可 這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別。2.isolation read uncommitted 4 p l.i f k...

Spring 事務隔離級別

資料庫事務的隔離級別有4種,由低到高分為為read uncomitted,read comitted,repeatable read serializable,而且,在事務的併發操作中可能會出現髒讀,不可重複度,虛讀 幻讀 髒讀 read uncomitted 什麼都防不住 乙個事務讀到另外乙個事務...

Spring事務隔離級別

事務操作可能出現的問題 更新丟失 lost update 當系統允許兩個事務同時更新同一資料時,發生更新丟失。髒讀 dirty read 當乙個事務讀取另乙個事務尚未提交的修改時,產生髒讀。非重複讀 nonrepeatable read 第一次讀 得到乙個結果 再讀,換了乙個結果 幻像 phanto...