淺談MYSQL X鎖和S鎖

開啓一個事務以後事務

若是A事務當中有語句加入了一個排它鎖,那麼A事務沒有提交以前。其餘事務只能讀取這個而不能寫入或者更新io

A事務:table

start transaction ;  select * from table_name where id =1 for update ;class

B事務:date

update table_name set count = count - 1 where id= 1;select

若是A事務沒有執行提交的話,B事務會阻塞直到A事務提交以後纔會執行。數據

若是A事務這個id是主鍵的話,INODB引擎下是會產生一個行級鎖,就是能對其餘行和列進行操做。否者的話是一個表鎖。tab

S鎖di

事務A對數據1加了S鎖以後,只能對其進行讀取而不能更改。 在事務A提交以前,其餘事務也是隻能讀取不能更改。co

也就是其餘事務也只能加S鎖,而不能加排他鎖。

相關文章
相關標籤/搜索