亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql中臟讀、不可重復讀和幻讀的概念

發布時間:2021-09-14 16:42:28 來源:億速云 閱讀:224 作者:chen 欄目:云計算

本篇內容介紹了“mysql中臟讀、不可重復讀和幻讀的概念”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

臟讀、不可重復讀、幻讀

在現代關系型數據庫中,事務機制是非常重要的,假如在多個事務并發操作數據庫時,如果沒有有效的機制進行避免就會導致出現臟讀,不可重復讀,幻讀。


臟讀

1、在事務A執行過程中,事務A對數據資源進行了修改,事務B讀取了事務A修改后的數據。

2、由于某些原因,事務A并沒有完成提交,發生了RollBack操作,則事務B讀取的數據就是臟數據。

這種讀取到另一個事務未提交的數據的現象就是臟讀(Dirty Read)。

mysql中臟讀、不可重復讀和幻讀的概念  
 

不可重復讀

事務B讀取了兩次數據資源,在這兩次讀取的過程中事務A修改了數據,導致事務B在這兩次讀取出來的數據不一致。

這種在同一個事務中,前后兩次讀取的數據不一致的現象就是不可重復讀(Nonrepeatable Read)。

mysql中臟讀、不可重復讀和幻讀的概念  
 

幻讀

事務B前后兩次讀取同一個范圍的數據,在事務B兩次讀取的過程中事務A新增了數據,導致事務B后一次讀取到前一次查詢沒有看到的行。

幻讀和不可重復讀有些類似,但是幻讀強調的是集合的增減,而不是單條數據的更新。

mysql中臟讀、不可重復讀和幻讀的概念  
 

第一類更新丟失

事務A和事務B都對數據進行更新,但是事務A由于某種原因事務回滾了,把已經提交的事務B的更新數據給覆蓋了。這種現象就是第一類更新丟失。

mysql中臟讀、不可重復讀和幻讀的概念  
 

第二類更新丟失

其實跟第一類更新丟失有點類似,也是兩個事務同時對數據進行更新,但是事務A的更新把已提交的事務B的更新數據給覆蓋了。這種現象就是第二類更新丟失。

mysql中臟讀、不可重復讀和幻讀的概念  
 

事務隔離級別

為了解決以上的問題,主流的關系型數據庫都會提供四種事務的隔離級別。事務隔離級別從低到高分別是:讀未提交、讀已提交、可重復讀、串行化。事務隔離級別等級越高,越能保證數據的一致性和完整性,但是執行效率也越低。所以在設置數據庫的事務隔離級別時需要做一下權衡,MySQL默認是可重復讀的級別

 

讀未提交

讀未提交(Read Uncommitted),是最低的隔離級別,所有的事務都可以看到其他未提交的事務的執行結果。只能防止第一類更新丟失,不能解決臟讀,可重復讀,幻讀,所以很少應用于實際項目。

 

讀已提交

讀已提交(Read Committed), 在該隔離級別下,一個事務的更新操作結果只有在該事務提交之后,另一個事務才可能讀取到同一筆數據更新后的結果。可以防止臟讀和第一類更新丟失,但是不能解決可重復讀和幻讀的問題。

 

可重復讀

可重復讀(Repeatable Read),MySQL默認的隔離級別。在該隔離級別下,一個事務多次讀同一個數據,在這個事務還沒結束時,其他事務不能訪問該數據(包括了讀寫),這樣就可以在同一個事務內兩次讀到的數據是一樣的。可以防止臟讀、不可重復讀、第一類更新丟失、第二類更新丟失的問題,不過還是會出現幻讀。

 

串行化

串行化(Serializable),這是最高的隔離級別。它要求事務序列化執行,事務只能一個接著一個地執行,不能并發執行。在這個級別,可以解決上面提到的所有并發問題,但可能導致大量的超時現象和鎖競爭,通常不會用這個隔離級別。

 

“mysql中臟讀、不可重復讀和幻讀的概念”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

怀仁县| 淮阳县| 西丰县| 张家川| 上高县| 伊通| 定结县| 蕉岭县| 承德县| 张家界市| 西藏| 嫩江县| 双峰县| 嘉义市| 宁化县| 安阳县| 金阳县| 武隆县| 时尚| 正定县| 闵行区| 常山县| 仪征市| 利津县| 政和县| 浮山县| 昌吉市| 昌宁县| 广德县| 彰化县| 兴业县| 连云港市| 台东县| 南澳县| 互助| 本溪市| 冷水江市| 吉林省| 宜阳县| 福贡县| 卓资县|