寫在前面: 此博客內容已經同步到我的博客網站,如需要獲得更優的閱讀體驗請前往https://mainjaylai.github.io/Blog/blog/database/lock
以下是數據庫中常用的幾種鎖類型:
1. 共享鎖(Shared Lock,S Lock)
共享鎖允許多個事務同時讀取同一資源,但不能修改該資源。其他事務也可以在同一資源上獲取共享鎖。
-- 開啟事務
START TRANSACTION;-- 對數據表中的某一行申請共享鎖
SELECT * FROM your_table WHERE id = 1 LOCK IN SHARE MODE;-- 進行只讀操作
SELECT column1, column2 FROM your_table WHERE id = 1;-- 提交事務
COMMIT;
在這個例子中,SELECT ... LOCK IN SHARE MODE
語句申請了一個共享鎖,允許其他事務同時讀取但不能修改被鎖定的行。
2. 排他鎖(Exclusive Lock,X Lock)
排他鎖允許一個事務讀取和修改資源。在持有排他鎖期間,其他事務不能在同一資源上獲取任何類型的鎖。
-- 開啟事務
START TRANSACTION;-- 對數據表中的某一行申請排他鎖
SELECT * FROM your_table WHERE id