MySQL锁首页推荐程序员

mysql锁(八)innodb下的共享锁和排他锁

2016-09-14  本文已影响2620人  b12af9baadf4

****什么是共享锁,什么是排他锁?****

****共享锁****也叫读锁,简称S锁,原理:一个事务获取了一个数据行的共享锁,其他事务能获得该行对应的共享锁,但不能获得排他锁,即一个事务在读取一个数据行的时候,其他事务也可以读,但不能对该数据行进行增删改。

****排他锁****也叫写锁,简称x锁,原理:一个事务获取了一个数据行的排他锁,其他事务就不能再获取该行的其他锁(排他锁或者共享锁),即一个事务在读取一个数据行的时候,其他事务不能对该数据行进行增删改查。


****如何设置共享锁和排他锁?****
设置共享锁:SELECT ... LOCK IN SHARE MODE;
设置排他锁:SELECT ... FOR UPDATE;


****注意点 ****


****什么是意向共享锁,什么是意向排他锁?****
意向共享锁,简称IS,其作用在于:通知数据库接下来需要施加什么锁并对表加锁。如果需要对记录A加共享锁,那么此时innodb会先找到这张表,对该表加意向共享锁之后,再对记录A添加共享锁。

意向排他锁,简称IX,其作用在于:通知数据库接下来需要施加什么锁并对表加锁。如果需要对记录A加排他锁,那么此时innodb会先找到这张表,对该表加意向排他锁之后,再对记录A添加共享锁。


****共享锁和意向共享锁,排他锁与意向排他锁的区别****


上一篇 下一篇

猜你喜欢

热点阅读