mysql 锁 (共享锁 排它锁 间隙锁)

1. 共享锁

select 可以允许多个

加上共享锁不能进行数据修改

2. 排它锁

3. 意向锁

主要就是为了看表上是否有锁。一个标记。加共享锁/排它锁自动加上的。如果有共享锁/排它锁肯定有意向共享锁/意向排它锁。

如果想锁全表就需要每行去查看是否有锁,所以存在意向锁。提高加锁效率

3.

没有索引: 排它锁就会锁全表

主键索引:只会锁一行数据

唯一索引: 因为唯一索引是通过唯一索引找到主键索引,找到对应的数据,所以锁唯一索引对应的唯一索引也会锁定。

例如 id 主键 name 唯一索引 

id: 5 name: name5

select * from table where name ='name5' for update;锁定name='name5'行数据

select * from table where id = 5 for update 会失败 

4.临健锁

范围查询会所当前左开右边区间和下一个左开右边范围。 解决幻读

5.间隙锁

可以在两个事务获取间隙锁

6.记录锁

 

 

 

 

参考: https://www.youtube.com/watch?v=DEXoY-gQPww

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值