MySQL事務隔離級別和Spring事務隔離級別的聯繫

1、MySQL事務隔離級別

  1. 讀未提交:該級別事務能夠讀取到其餘未提交的事務,形成髒讀。
  2. 讀已提交:能讀取到其餘提交的事務,能夠避免髒讀,但可形成不可重複讀與幻讀。
  3. 可重複讀:MySQL默認事務隔離級別,能夠解決不可重複讀,但沒法阻止新插入的記錄形成後者可能會查到前者沒法查出的數據。
  4. 序列化:事務的最高隔離級別,全部事務串行執行,性能最差。

2、Spring事務隔離級別

  1. Isolation.Default:Spring:默認隔離級別,即採用數據庫的隔離級別。
  2. Isolation.Read_Uncommit:事務未提交可讀,會出現髒讀。
  3. Isolation.Read_Commit:不可髒讀,但會出現幻讀和不可重複讀。
  4. Isolation.Repeatable_Read:不可髒讀,不可重複讀,但會出現幻讀。
  5. Isolation.Searializable:事務的最高隔離級別,全部事務串行執行。

3、Spring事務傳播行爲

  1. Required:若是當前存在事務會支持該事物,不存在則開啓新的事務。
  2. Required_New:建立新的邏輯事務,表示每次都建立新的邏輯事務。
  3. Supports:支持當前事務,若是沒有事務就會以非事務方式執行。
  4. Not_Support:以非事務方式執行,若是當前存在事務就暫停該事務,以非事務方式運行。
  5. Mandatory:支持當前事務,若是沒有事務則拋出異常。
  6. Never:以非事務方式運行,若是有事務則拋出異常。
  7. Nested:嵌套事務支持,若是當前存在事務,則嵌套在事務內部執行,如不存在事務會新建事務,內部事務不影響外部事務,外部事務回滾則會致使內部事務回滾。
相關文章
相關標籤/搜索