91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

事務的四大特性和隔離級別

發布時間:2020-06-03 16:02:05 來源:億速云 閱讀:276 作者:Leah 欄目:編程語言

這篇文章為大家帶來有關事務的四大特性和隔離級別的介紹。文章不僅介紹事務的四大特性和隔離級別,還介紹了多個事務可能會出現的并發問題,希望大家通過這篇文章能有所收獲。

事務是數據庫中的一個核心概念,指的是對數據庫的一組操作作為一個整體,要么都執行要么都不執行

事務有四大特性:

1.     原子性:每個事務都是一個整體,不可再拆分,事務中的sql語句要么都執行成功,要么都執行失敗。

2.     一致性:事務執行前后數據庫的狀態保持一致。比如不管如何轉賬,轉賬前后的總錢數是不變的。

3.     隔離性:事務和事務之間不應該相互影響,保持隔離。

4.     持久性:事務一旦提交對數據庫的修改就是永久的,即使電腦發生故障也不會影響該修改,因為他的結果是記錄在存儲設備上的。

事務中有一個重要的特性“事務的隔離性”指的是事務和事務之間不應該相互影響,保持隔離,然而在現實中多個事務可能會操作同一個數據,造成并發問題:

     臟讀:一個事務讀取到了另一個事務尚未提交的數據。

     不可重復讀:事務一讀取到了age的值20,事務二將該值修改成了28,事務一再次讀取age的值28,事務一兩次讀取的age值不一致。

     幻讀:事務一讀取到A表中有一條記錄,事務二往A表中插入一條記錄,事務一再次讀取的時候記錄變成了兩條,就像發生幻覺一樣。

不可重復讀和幻讀很相似,可以從兩個角度理解兩者的差別:

     不可重復讀是另一個事務修改了數據,導致該事務多次讀取出來的值不一樣,而幻讀是另一個事務插入或刪除了記錄,導致該事務多次讀取出來的記錄數不一樣

     不可重復讀的解決只需要鎖住會發生修改的記錄就可以,幻讀需要鎖住更大的范圍。

 

正是因為有這些問題存在,數據庫設置了隔離級別來處理:

1.     讀未提交(read uncommitted): 事務中的修改,即使沒有提交,其他事務也可以看得到

在這種隔離級別下有可能發生臟讀,不可重復讀和幻讀。

一家酒店對外預定房間,現在還剩四間房,一個顧客到小王這里來預定四間房,小王查詢系統發現還剩四間就將這四間房預定出去,該事務還沒提交的時候另一個顧客到小李這里來預定房間,小李查詢系統發現沒房了,就拒絕了這個訂單,此時小王的電腦發生故障,事務回滾,訂單失效,這就是臟讀造成的影響。

2.     讀已提交read committed: 事務中的修改只有提交以后才能被其它事務看到。在這種隔離級別下有可能發生不可重復讀和幻讀。

還是定房間的例子,一個顧客到小王這里來預定四間房,小王將這四間房預定了出去,該事務還沒提交的時候另一個顧客到小李這里來預定房間,小李查詢系統發現還有四間房,剛想預定的時候小王的事務提交了,小李的系統立馬呈現0間房。這就是不可重復讀造成的影響。

3.     可重復讀 (repeatable read):該級別保證了在事務中看到的每行的記錄的結果是一致的,但是這種級別下有可能發生幻讀。

公司規定如果銷售額達不到就要扣工資,經理查詢小王的銷售業績,發現還差幾間房,經理喜上眉梢,把結果打印出來,結果打印出來的結果業績正好合格,原來小王在這當口又賣了幾張票正好填上了這個空缺。這就是幻讀造成的影響。

4.     串行化serializable):該級別下所有的事務都是串行執行的,一個事務執行完了才能執行其它的事務,可以解決所有的并發問題,它是靠大量加鎖實現的,所以效率很低下。只有在需要絕對保證數據一致性,并且并發量不大的情況下,可以考慮。

看完上述內容,你們對事務的四大特性和隔離級別有進一步的了解嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀。

向AI問一下細節

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

AI

尚志市| 阿拉善左旗| 肇庆市| 巴彦县| 裕民县| 准格尔旗| 密云县| 南皮县| 赤峰市| 延寿县| 荣昌县| 兴山县| 读书| 漳平市| 原平市| 洛宁县| 蓬安县| 泰州市| 兴宁市| 偏关县| 海伦市| 昌乐县| 大埔区| 焉耆| 蒙山县| 永平县| 肃北| 武义县| 全南县| 耒阳市| 依兰县| 阿合奇县| 银川市| 商南县| 临澧县| 杭锦后旗| 霍州市| 纳雍县| 沾化县| 酉阳| 安义县|