事務隔離級別&Spring事務傳播

隔離級別

輸入圖片說明 mysql默認的事務處理級別是'REPEATABLE-READ',也就是可重複讀html

對於不可重複讀, 在RC下只須要鎖住知足條件的記錄,就能夠避免被其它事務修改,也就是 select for update, select in share mode;mysql

RR隔離下使用MVCC實現可重複讀;(版本控制?怎麼實現的)spring

對於幻讀, 要鎖住知足條件的記錄及全部這些記錄之間的gap,也就是須要 gap lock。sql

知足幻讀所須要的開銷更大,性能更低。markdown

Spring 事務傳播

輸入圖片說明

參考:性能

解惑 spring 嵌套事務版本控制

Spring事務傳播機制htm

ps:oschina markdown 不支持 表格 wtfblog

二、是REQUIRES_NEW,若是save()中的代碼拋出異常,而且被捕獲,commit()中的其餘代碼不會roll back;若是commit()中的其餘代碼拋出異常,並且沒有捕獲,不會致使save()回滾圖片

三、是NESTED,若是save()中的代碼拋出異常,而且被捕獲,commit()中的其餘代碼不會roll back;若是commit()中的其餘代碼拋出異常,並且沒有捕獲,會致使save()回滾

REQUIRED、REQUIRES_NEW、NESTED 3個 spring 事務傳播級別使用場景

** NESTED,內部不影響外部事物,外部要影響內部。**

相關文章
相關標籤/搜索