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

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页