關于MySql中的事物隔離級別

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

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

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

但是理論上可重復讀還是無法解決另外一個幻讀問題,指的是當某個事務在讀取某個范圍內的記錄時,另外一個事務又在該范圍內插入了新的記錄,當之前的實物再次讀取該范圍的記錄時,會產生幻行.

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

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

實際應用中也很少用到這個隔離級別,只有在非常需要確保數據的一致性且可以接受沒有并發的情況下,才考慮采用該級別。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容