事務管理基礎:排它鎖和共享鎖相關知識筆記

 

 

1、排它鎖、共享鎖出現的意義

數據庫的併發事務對數據庫進行讀寫,可能會破壞事務的隔離性和數據一致性。爲了保持事務的隔離性,系統必須對事務之間的相互作用加以控制。最典型的做法就是當一個事務訪問某個數據對象時,

其他事務都不能更新該數據對象。最常用的控制手段就是加鎖,該方法是隻允許事務訪問當前持有鎖的數據項。其中最常用的有排它鎖、共享鎖。

2、排它鎖(Exclusive Locks 簡稱X鎖)

排它鎖也成爲寫鎖,主要用於對數據讀寫操作時進行鎖定。如果事務T對數據A加上排它鎖後,就只允許事務T對數據A的讀取、修改,其他事務對數據A不能再加任何鎖,也不能讀取和修改數據A,直到事務T釋放A上的排它鎖。

3、共享鎖(Share Locks 簡稱S鎖)

共享鎖也成爲讀鎖,主要用於對數據進行讀取操作時進行鎖定。如果事務T對數據A加上共享鎖後,事務T只能讀取數據A但不可以修改,其他事務可以讀數據A加S鎖來讀取,只要數據A上有共享鎖,任何事務只能對其加共享鎖,而不能加排它鎖來修改。

4、封鎖協議 

4.1 封鎖協議的作用 

因爲數據庫加鎖可以限制其他事務對數據的操作,但會降低事務的併發性,這個時候可以採用封鎖協議來保證事務的一致性前提下儘可能提高併發性。封鎖協議是對數據加鎖類型、加鎖時間、釋放鎖時間的一些規則的描述。

常用的封鎖協議:一級封鎖協議、二級封鎖協議、三級封鎖協議。 

  • 一級封鎖協議:主要是指事務T在修改數據A之前必須先對其加上排它鎖,直到事務結束後才能釋放排它鎖。一級封鎖協議使得在一個事務修改數據期間,其他事務不能對該數據進行修改,只能等該事務結束之後,主要解決了丟失修改的問題。 

  • 二級封鎖協議:主要是在一級封鎖協議加上事務T在讀取數據A之前必須對其加上共享鎖,讀取完成後釋放共享鎖。二級封鎖協議使得一個事務不能讀取被其他事務修改中的數據。解決了數據髒讀的問題。但事務T如果讀取數據A之後,其他事務再對A做完修改,事務T再去讀取A,會產生不可重複的錯誤。

  • 三級封鎖協議:主要是在一級封鎖協議加上事務T在讀取數據A之前必須對其加上共享鎖,讀取完成後釋放共享鎖,直到事務結束後才釋放共享鎖。這樣就解決了二級封鎖協議的不可重複讀的問題。

 

 

IT技術分享社區

個人博客網站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章