MySQL锁

实践最重要,具体看结尾实践

1、MySQL几种锁

1、属性:共享锁(S)、排他锁(X);

2、粒度:行级锁、表级锁、页级锁、记录锁、间隙锁、临键锁;

3、状态:意向锁(意向排他 IX、意向共享 IS)

2、是否锁互斥

 3、几种锁介绍

1、自增锁

innodb_autoinc_lock_mode设置:
0:traditonal (每次都会产生表锁)
1:consecutive (会产生一个轻量锁,simple insert会获得批量的锁,保证连续插入)
2:interleaved (不会锁表,来一个处理一个,并发最高)

表级锁,MyIsam为traditonal,InnoDB默认是1

2、记录锁

锁的是单行数据索引,必须作用在索引,否则会变为表锁

3、间隙锁

开区间锁,(5,10)锁的就是5和10中间的数据,不包括5和10;

具体实践看结尾

4、临键锁

记录锁+间隙锁,前开后闭

具体实践看结尾

5、插入意向锁

事务A适用了间隙锁,事务B在这个间隙插入数据形成的一个特殊的锁

6、共享锁

select *
from t_student
where ...  lock in share mode

读锁,可以并发读取数据,具体锁排斥信息参考上图

7、排他锁

select *
from t_student
where ... for update

写锁,不可以并发加锁,具体锁排斥信息参考上图

结尾

行锁的实践:MyS锁实践_weixin_46220076的博客-CSDN博客

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值