封鎖 (資料庫)
数据库技术
封鎖是一項用於多使用者同時訪問資料庫的技術,是實現並行控制的一項重要手段,能夠防止當多使用者覆寫資料庫時造成資料不一致與衝突。當有一個使用者對資料庫內的資料進行操作時,在讀取資料前先鎖住資料,這樣其他使用者就無法訪問和修改該資料,直到這一資料修改並寫回資料庫解除封鎖為止。詹姆斯·尼古拉·格雷最早完整描述了資料庫鎖。
按照粒度可分為:
- 表鎖(檔案鎖)
- 頁鎖(page-level lock)
- 記錄鎖(行鎖,因為SQL標準使用「行」的表述)
按照使用方式分為:
- 互斥鎖(exclusive lock,寫鎖)
- 共享鎖(sharing lock,讀鎖)
一般說來,獲得鎖並不是禁止其他事務對加鎖的資料的讀/寫,而是阻塞了其他事務對這些資料的加鎖操作。例如,如果一般的select語句根本不申請加鎖,所以能直接讀取其他事務已經加了共享鎖的資料。
參考
編輯- 王珊 薩師煊. 数据库系统概论 (M) 4. 北京: 高等教育版社. 2006. ISBN 7-04-019583-6.
這是一篇與資料庫軟體相關的小作品。您可以透過編輯或修訂擴充其內容。 |