MySQL 共享鎖和排他鎖 原

MySQL 共享鎖和排他鎖

MySQL 的共享鎖和排他鎖都屬於悲觀鎖(參考:樂觀鎖和悲觀鎖

共享鎖

共享鎖又稱讀鎖,簡稱 S 鎖,多個事務可以同時爲同一數據加共享鎖。數據被添加共享鎖後可以被多個事務同時讀取,但是無法被修改。

MySQL 共享鎖實現:

SELECT ... LOCK IN SHARE MODE

排他鎖

排他鎖又稱寫鎖,簡稱 X 鎖,排他鎖不能與其它鎖共存,一旦一個事務獲取了某一數據的排他鎖,則其它任何事務都無法再獲取該數據的其它鎖,包括共享鎖和排他鎖。只有獲取到排他鎖的事務本身可以對該數據執行讀取和修改操作。

MySQL 排他鎖實現:

SELECT ... FOR UPDATE

MySQL InnoDB 存儲引擎會自動爲 INSERTUPDATEDELETE 操作涉及的數據添加排他鎖,SELECT 默認不添加任何鎖。

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