日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

[数据库]数据库三级加锁协议深入理解

發布時間:2024/7/19 数据库 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [数据库]数据库三级加锁协议深入理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在并發事務的執行時,容易引起數據不一致,有一下幾種情況
丟失修改
:兩個事務T1和T2讀入同一數據并修改,T2提交的結果破壞了T1提交的結果,導致T1的修改被丟失
讀臟數據
:事務T1對數據D進行修改,事務T2讀取到了事務T1修改的數據,接著事務T1發生異常進行回滾,事務T2讀取到的就叫做“臟數據"
不可重復讀
:不可重復讀是指事務T1讀取數據后,事務T2執行更新操作,使T1無法再現前一次讀取結果
數據庫的三段加鎖協議,可以很好的解決以上問題
三段鎖協議:
共享鎖(S鎖):共享 (S) 用于不更改或不更新數據的操作(只讀操作),如 SELECT 語句。
如果事務T對數據A加上共享鎖后,則其他事務只能對A再加共享鎖,不能加排他鎖。獲準共享鎖的事務只能讀數據,不能修改數據。

排他鎖(X鎖):用于數據修改操作,例如 INSERT、UPDATE 或 DELETE。確保不會同時同一資源進行多重更新。
如果事務T對數據A加上排他鎖后,則其他事務不能再對A加任任何類型的封鎖。獲準排他鎖的事務既能讀數據,又能修改數據。

用三段鎖協議來解決數據不一致的三種情況
1.一級封鎖協議解決丟失修改
當事務在更新數據的時候給數據加上排他鎖
原理:加上排他鎖之后,其他事務不能對該數據加上任意鎖,在當前事務沒有釋放鎖時其他事務不能進行對該數據的讀寫操作,只有當前事務釋放排他鎖之后,才能對該數據進行操作

2.二級封鎖協議解決讀臟數據
在一級封鎖協議的基礎上,當事務在讀取數據的時候加共享鎖,讀取完成后釋放鎖
原理:加入共享鎖之后,不能對該數據加排他鎖,即其他事務不能進行修改數據。所以此時讀取的數據一定是與數據庫一致的

3.三級封鎖線協議不可重復讀
在一級封鎖協議的基礎上,當事務在讀取數據的時候加共享鎖,事務結束后釋放
原理:加入共享鎖之后,不能對該數據加排他鎖,即其他事務不能進行修改數據。如果讀取完成后就釋放,那么其他事務此時可以修改該數據。當延遲到事務結束后釋放,其他事務就無法修改該數據了

事務的封鎖級別不是越高就越好,隨著封鎖粒度的增加會影響執行效率。
————————————————
版權聲明:本文為CSDN博主「豪滿天下」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_43752167/article/details/100741144

總結

以上是生活随笔為你收集整理的[数据库]数据库三级加锁协议深入理解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。