mysql 中各种相关的锁

一、锁级别划分

1、共享锁(读锁s)

select …… lock in share mode;

注: 读锁可以被其他事务共享,其他事务不可以给此对象加写锁 

2、排它锁 / 独占锁(写锁x)

第一种是自动加排他锁。我们在操作数据的时候 ,包括增删改 ,都会默认加上一个排它锁。

第二种是手工加锁 ,我们用一个 FOR UPDATE 给一行数据加上一个排它锁

3、意向锁

二、区间

注:锁的字段没有索引直接升级为表锁

一、记录锁

在对有索引的字段进行等值查询,精准匹配到一条记录的时候,此时为记录锁

二、间隙锁

当查询没有检索出一条数据的时候(无论使用的是等值还是范围),此时为间隙锁

当范围查询时即使命中了也为间隙锁。

表中有id 为 1,4,7,10
当where id = 3 时,(1,4) 的闭区间为临隙锁的方位

 三、临键锁

当我们使用了范围查询 ,不仅仅命中了 Record 记录 ,还包含了 Gap 间隙 ,在这种情况下我们使用的就是临键锁

当 where id >2 and id < 5 的时候 为(1,4],(4,7)

参考:

MySQL锁:基本概念、类型和使用策略-CSDN博客

MySQL高级篇——锁的概述与案例应用_mysql锁举案例-CSDN博客

MYsql锁, 看这一篇就够了 - 知乎 (zhihu.com)

MySQL数据库的锁 --- 六种分类 - 14种锁详细介绍_mysql的锁-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值