資料庫系統的鎖的基本原理

2021-06-18 18:55:41 字數 706 閱讀 2427

在資料庫系統的acid特性中,隔離性是指資料庫系統必須具有隔離併發執行的各個事務的能力,使它們不會相互影響。

資料庫採用鎖來實現事務的隔離性。鎖的基本原理如下:

1、當乙個事務訪問某種資料庫資源時,如果執行select語句必須先獲得共享鎖,如果執行insert、update、或delete語句,必須先獲得獨佔鎖,這些鎖用於鎖定被操作的資源。

2、當第二個事務也要訪問相同的資源時,相應的語句也必須先獲得相應的鎖,此時就可以根據情況來決定第二個事務是等待鎖,還是可以立即獲得鎖。

為了能夠讓使用者根據實際應用的需求,在事務的隔離性與併發性之間做出合理的權衡,資料庫系統提供了4種事務隔離級別供使用者選擇:

1)serialiazble 序列化

2)repeatable read 可重複讀

3)read commited 讀已提交資料

4)read uncommited 讀未提交的資料

資料庫採用不同鎖型別來實現4種隔離級別,具體的實現過程對使用者是透明的。使用者應該關心的是如何選擇合適的隔離級別。

在4中隔離級別中,seraliable的隔離級別最高,read uncommited級別最差。

對於多數應用程式,可以優先考慮把資料庫系統的隔離級別設為read committed,它能夠避免髒讀,而且具有良好的併發效能。儘管它可能會導致不可重複讀,虛讀和第二類丟失更新等問題,在可能出現這類問題的個別場合,可以由應用程式採用悲觀鎖和樂觀鎖來控制。

資料庫鎖的基本原理

為了保證資料的完事性和一致性,資料庫系統採用鎖來實現事務的隔離性。各種大型資料庫採用的鎖基本理論是一致的,但在具體實現上各有差別。從併發事務鎖定的關係上看,可以分為共享鎖定和獨佔鎖定。從鎖定的物件不同,一般可以分為表鎖定和行鎖定。鎖共享鎖用於讀取資料操作,它是非獨佔的,允許其他事務同時讀取其鎖定的資...

資料庫鎖的基本原理

為了保證資料的完事性和一致性,資料庫系統採用鎖來實現事務的隔離性。各種大型資料庫採用的鎖基本理論是一致的,但在具體實現上各有差別。從併發事務鎖定的關係上看,可以分為共享鎖定和獨佔鎖定。從鎖定的物件不同,一般可以分為表鎖定和行鎖定。鎖共享鎖用於讀取資料操作,它是非獨佔的,允許其他事務同時讀取其鎖定的資...

資料庫鎖的基本原理

為了保證資料的完事性和一致性,資料庫系統採用鎖來實現事務的隔離性。各種大型資料庫採用的鎖基本理論是一致的,但在具體實現上各有差別。從併發事務鎖定的關係上看,可以分為共享鎖定和獨佔鎖定。從鎖定的物件不同,一般可以分為表鎖定和行鎖定。鎖共享鎖用於讀取資料操作,它是非獨佔的,允許其他事務同時讀取其鎖定的資...