浅谈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锁,而不能加排他锁。

相关文章
相关标签/搜索