一、MySQL事務(wù)隔離級別
讀未提交:該級別事務(wù)可以讀取到其他未提交的事務(wù),造成臟讀。
讀已提交:能讀取到其他提交的事務(wù),可以避免臟讀,但可造成不可重復(fù)讀與幻讀。
可重復(fù)讀:MySQL默認事務(wù)隔離級別,可以解決不可重復(fù)讀,但無法阻止新插入的記錄造成后者可能會查到前者無法查出的數(shù)據(jù)。
序列化:事務(wù)的最高隔離級別,所有事務(wù)串行執(zhí)行,性能最差。
二、Spring事務(wù)隔離級別
Isolation.Default:Spring:默認隔離級別,即采用數(shù)據(jù)庫的隔離級別。
Isolation.Read_Uncommit:事務(wù)未提交可讀,會出現(xiàn)臟讀。
Isolation.Read_Commit:不可臟讀,但會出現(xiàn)幻讀和不可重復(fù)讀。
Isolation.Repeatable_Read:不可臟讀,不可重復(fù)讀,但會出現(xiàn)幻讀。
Isolation.Searializable:事務(wù)的最高隔離級別,所有事務(wù)串行執(zhí)行。
三、Spring事務(wù)傳播行為
Required:如果當前存在事務(wù)會支持該事物,不存在則開啟新的事務(wù)。
Required_New:創(chuàng)建新的邏輯事務(wù),表示每次都創(chuàng)建新的邏輯事務(wù)。
Supports:支持當前事務(wù),如果沒有事務(wù)就會以非事務(wù)方式執(zhí)行。
Not_Support:以非事務(wù)方式執(zhí)行,如果當前存在事務(wù)就暫停該事務(wù),以非事務(wù)方式運行。