共享鎖:共享鎖是讀鎖,是在執(zhí)行讀取操作的時候創(chuàng)建的。如果事務 T 對 數(shù)據(jù) A 添加了共享鎖,那么其他事務只能再對數(shù)據(jù) A 添加 共享鎖而不能添加其他類型的鎖,對于已經(jīng)添加了共享鎖的事務,只能執(zhí)行讀操作,而不能執(zhí)行寫操作。共享鎖的使用方式需要在查詢語句后面添加 LOCK IN SHARE MODE
排它鎖:排它鎖是寫鎖,如果事務 T 對 數(shù)據(jù) A 添加排它鎖,那么其他事務就不能再添加其他類型的鎖,已經(jīng)添加了排它鎖的事務,既能執(zhí)行讀操作也能執(zhí)行寫操作,排它鎖的使用方式需要在查詢語句中添加 FOR UPDATE
意向鎖是表級鎖,它主要用于在一個事務中表明下一行將要被請求的鎖類型,INNODB 中的有兩個表鎖:意向共享鎖、意向排它鎖
意向共享鎖:表明事務準備給數(shù)據(jù)行添加一個共享鎖,一個數(shù)據(jù)行在被添加共享鎖之前首先需要獲取當前表的意向共享鎖
意向排它鎖:表明事務準備給數(shù)據(jù)行添加一個排它鎖,一個數(shù)據(jù)行在被添加排它鎖之前首先需要獲取當前表的意向排它鎖
意向鎖是 INNODB 自動添加的,不需要用戶干預