資料庫的鎖機制

2021-08-09 05:24:58 字數 652 閱讀 6497

看了一些關於資料庫鎖機制的文章,漲了很多見識,在這裡把自己的學到的簡單總結歸納一下

1.資料庫規定對於同一資源不能同時共存共享鎖和排他鎖。

2.共享鎖相容,兩個共享鎖是可以存在同一資源上的,表明共享鎖不阻止 其它session同時讀資源, 但阻止其它session進行update操作。

3.更新鎖(為了解決死鎖引進)

表示獲取從共享鎖到排他鎖的資格。乙個事物只能有乙個更新鎖獲此資格。這樣做比直接使用排它鎖提高了效率。

4.共享鎖和更新鎖可以在同乙個資源上,這說明它們是相容的。

5.排它鎖和更新鎖是不相容的,不能同時加在同一資源上。

6.意向鎖

當乙個表中的某一行被加上排他鎖後,該錶就不能再被加表鎖。當需要加表鎖,需要檢查每一行是否有排它鎖,這樣會很麻煩且效率低下,可以直接判斷是否有意向鎖就可以確定表中是否有行資料有排它鎖,提高了效率。

7.計畫鎖

ddl語句都會加sch-m鎖,該鎖不允許任何其它session連線該錶。用jdbc向資料庫傳送了一條新的sql語句,資料庫要先對之進行編譯,在編譯期間,也會加鎖,稱之為:sch-s,編譯這條語句過程中,其它session可以對錶tablea做任何操作(update,delete,加排他鎖等等),但不能做ddl(比如alter table)操作。

參考文章:

資料庫鎖機制

這段時間由於開發專案,重新學習了資料庫的併發控制和鎖機制。資料庫就是通過鎖機制來解決併發問題的。主要就是兩種鎖,共享鎖和排他鎖 也叫獨佔鎖 在執行select語句的時候需要給操作物件 表或者一些記錄 加上共享鎖,但加鎖之前需要檢查是否有排他鎖,如果沒有,則可以加共享鎖 乙個物件上可以加n個共享鎖 否...

資料庫鎖機制

這段時間由於開發專案,重新學習了資料庫的併發控制和鎖機制。資料庫就是通過鎖機制來解決併發問題的。主要就是兩種鎖,共享鎖和排他鎖 也叫獨佔鎖 在執行select語句的時候需要給操作物件 表或者一些記錄 加上共享鎖,但加鎖之前需要檢查是否有排他鎖,如果沒有,則可以加共享鎖 乙個物件上可以加n個共享鎖 否...

資料庫鎖機制

資料庫就是通過鎖機制來解決併發問題的。主要就是兩種鎖,共享鎖和排他鎖 也叫獨佔鎖 在執行select語句的時候需要給操作物件 表或者一些記錄 加上共享鎖,但加鎖之前需要檢查是否有排他鎖,如果沒有,則可以加共享鎖 乙個物件上可以加n個共享鎖 否則不行。共享鎖通常在執行完select語句之後被釋放,當然...