MySQL事務隔離級別和Spring事務隔離級別的聯繫
1、MySQL事務隔離級別
- 讀未提交:該級別事務能夠讀取到其餘未提交的事務,形成髒讀。
- 讀已提交:能讀取到其餘提交的事務,能夠避免髒讀,但可形成不可重複讀與幻讀。
- 可重複讀:MySQL默認事務隔離級別,能夠解決不可重複讀,但沒法阻止新插入的記錄形成後者可能會查到前者沒法查出的數據。
- 序列化:事務的最高隔離級別,全部事務串行執行,性能最差。
2、Spring事務隔離級別
- Isolation.Default:Spring:默認隔離級別,即採用數據庫的隔離級別。
- Isolation.Read_Uncommit:事務未提交可讀,會出現髒讀。
- Isolation.Read_Commit:不可髒讀,但會出現幻讀和不可重複讀。
- Isolation.Repeatable_Read:不可髒讀,不可重複讀,但會出現幻讀。
- Isolation.Searializable:事務的最高隔離級別,全部事務串行執行。
3、Spring事務傳播行爲
- Required:若是當前存在事務會支持該事物,不存在則開啓新的事務。
- Required_New:建立新的邏輯事務,表示每次都建立新的邏輯事務。
- Supports:支持當前事務,若是沒有事務就會以非事務方式執行。
- Not_Support:以非事務方式執行,若是當前存在事務就暫停該事務,以非事務方式運行。
- Mandatory:支持當前事務,若是沒有事務則拋出異常。
- Never:以非事務方式運行,若是有事務則拋出異常。
- Nested:嵌套事務支持,若是當前存在事務,則嵌套在事務內部執行,如不存在事務會新建事務,內部事務不影響外部事務,外部事務回滾則會致使內部事務回滾。
歡迎關注本站公眾號,獲取更多信息