在spring中定義了5中不同的事務隔離級別:
1. isolation_default(一般情況下使用這種配置既可) ;
這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別。
2. isolation_read_uncommitted 4 p" l. i' f; k1 1 r8 ~% b, l; t
5. isolation_serializable
這是花費最高代價但是最可靠的事務隔離級別。事務被處理為順序執行。除了防止髒讀,不可重複讀外,還避免了幻讀。 % c0 @8 e& g" x1 x/ p3 f; h1 q
什麼是幻讀?(新增新記錄引起) 9 d! d% j. |9 w9 n+ ~
例如:
a目前工資為5000的員工有10人,事務a讀取所有工資為5000的人數為10人。此時,事務b插入一條工資也為5000的記錄。這是,事務a再次讀取工資為5000的員工,記錄為11人。此時產生了幻讀。
大部分資料庫預設的事物隔離級別都會出現這種狀況,此種事物隔離級別將帶來表級鎖)
_! o3 w6 m/ l
說明 :oracle資料庫預設的事物隔離級別已經保證了避免髒讀和不可重複讀。但可能會幻讀,避免幻讀需要加表級鎖,oracle預設行級鎖。在基於spring的事物配置中一定要慎重使用isolation_serializable的事物隔離級別。這種配置會使用表級鎖,對效能影響巨大。一般沒有特殊需要的話,配置為使用資料庫預設的事物隔離級別便可。
Spring 事務隔離級別
資料庫事務的隔離級別有4種,由低到高分為為read uncomitted,read comitted,repeatable read serializable,而且,在事務的併發操作中可能會出現髒讀,不可重複度,虛讀 幻讀 髒讀 read uncomitted 什麼都防不住 乙個事務讀到另外乙個事務...
Spring事務隔離級別
事務操作可能出現的問題 更新丟失 lost update 當系統允許兩個事務同時更新同一資料時,發生更新丟失。髒讀 dirty read 當乙個事務讀取另乙個事務尚未提交的修改時,產生髒讀。非重複讀 nonrepeatable read 第一次讀 得到乙個結果 再讀,換了乙個結果 幻像 phanto...
Spring事務的隔離級別
在spring中定義了5中不同的事務隔離級別 1.isolation default 一般情況下使用這種配置既可 這是乙個platfromtransactionmanager預設的隔離級別,使用資料庫預設的事務隔離級別。2.isolation read uncommitted 4 p l.i f k...