mysql——InnoDB 锁

https://www.cnblogs.com/leedaily/p/8378779.html

1.InnoDB锁的实现方式:给索引项加锁,只有通过索引条件检索数据,InnoDB才使用行级锁,否则,InnoDB将使用表锁! 

2.InnoDB默认行级锁有两种:共享锁、排他锁

3.什么情况下会使用什么锁?

select * from table1 where xxx;这种情况下是以快照读的形式获取数据,不加锁;

update、delete、insert 会为数据加排他锁;

select... lock in share mode ;会为数据加共享锁;主要用在需要数据依存关系时来确认某行记录是否存在,并确保没有人对这个记录进行UPDATE或者DELETE操作

select...for update;会为数据加排他锁;当前事务也需要对该记录进行更新操作

4.间隙锁

对于键值在条件范围内但并不存在的记录,叫做“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁 (Next-Key锁)。 

posted @ 2019-06-17 10:52  高圈圈  阅读(232)  评论(0编辑  收藏  举报