關(guān)于MySql中的事物隔離級別

read uncommitted? (未提交讀) 級別 事務(wù)中的修改,即使沒有提交,對其他事物也都是可見的。事務(wù)可以讀取未提交的數(shù)據(jù),這也被稱為臟讀。

read committed( 提交讀) 大多數(shù)數(shù)據(jù)庫默認(rèn)的隔離級別都是 read committed(但是MySql不是):一個(gè)事務(wù)開始時(shí),只能看見已經(jīng)提交的事務(wù)所做的修改. 一個(gè)事務(wù)從開始提到提交之前,所做的任何修改對其它的事務(wù)都是不可見的

repeatable read(可重復(fù)讀) 該級別保證了在同一個(gè)事務(wù)中多次讀取同樣記錄的結(jié)果是一致的。

但是理論上可重復(fù)讀還是無法解決另外一個(gè)幻讀問題,指的是當(dāng)某個(gè)事務(wù)在讀取某個(gè)范圍內(nèi)的記錄時(shí),另外一個(gè)事務(wù)又在該范圍內(nèi)插入了新的記錄,當(dāng)之前的實(shí)物再次讀取該范圍的記錄時(shí),會產(chǎn)生幻行.

serializable(可串行化)? 是最高的隔離級別。它通過強(qiáng)制事務(wù)串行執(zhí)行,避免了前面說的幻讀問題.

簡單來說,可串行化會在讀取的每一行數(shù)據(jù)上加上鎖,所以可能導(dǎo)致大量的超時(shí)和鎖爭用的問題。

實(shí)際應(yīng)用中也很少用到這個(gè)隔離級別,只有在非常需要確保數(shù)據(jù)的一致性且可以接受沒有并發(fā)的情況下,才考慮采用該級別。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容