MySQL 共享鎖和排他鎖

MySQL 共享鎖和排他鎖

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

共享鎖

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

MySQL 共享鎖實現:blog

SELECT ... LOCK IN SHARE MODE

排他鎖

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

MySQL 排他鎖實現:get

SELECT ... FOR UPDATE

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

相關文章
相關標籤/搜索