共享鎖與獨占鎖均用於事務當中,隨事務的結束而解除。
共享鎖(share lock)
又稱讀鎖,讀取操作創建的鎖。
一旦上鎖,任何事務(包括當前事務)無法對其修改,其他事務可以並發讀取數據,也可在對此數據再加共享鎖
語法:SELECT ... LOCK IN SHARE MODE;
排他鎖(exclusive lock)
又稱寫鎖,如果事務對數據A加上排他鎖后,則其他事務不可並發讀取數據,也不能再對A加任何類型的鎖。獲准排他鎖的事務既能讀數據,又能修改數據。
語法:SELECT ... FOR UPDATE
意向鎖
InnoDB所用的表級鎖,其設計目的主要是為了在一個事務中揭示下一步將要被請求的鎖的類型。
InnoDB中的兩個表鎖:
意向共享鎖(IS):表示事務准備給數據行加入共享鎖,也就是說一個數據行加共享鎖前必須先取得該表的IS鎖
意向排他鎖(IX):類似上面,表示事務准備給數據行加入排他鎖,說明事務在一個數據行加排他鎖前必須先取得該表的IX鎖。
意向鎖是InnoDB自動加的,不需要用戶干預。
