对于数据库锁的总结

一:按照锁的类型进行分类,则分为读锁与写锁,读锁与写锁有读读共享,读写互斥,写写互斥的原则。

二:根据锁的粒度进行分类,则可以分为行级锁和表级锁(行锁中也有读锁和写锁)。行级锁是InnoDB特有的,MYISAM没有

1.行锁:

(1)记录锁:锁住单条记录(实则锁的是索引)。可以通过Lock in share mode获取行级读锁,通过for update 获取行级写锁。当该记录加锁后,就会根据该锁的原则来判断该数据是否可读,是否可写,如读读共享,读写互斥,读读互斥

(2)间隙锁:锁住间隙,防止读的时候插入数据(非互斥锁,即读锁)。使用范围查询时,会锁住相应范围

(3)next-key锁:锁住区间,不让其他事务在该区间上操作数据。主要是针对唯一索引,因为唯一索引有唯一约束,不会插入相同主键的数据。每一条非唯一索引上都有该锁,使用唯一索引操作数据时,会获取该锁。如会把10条数据根据age索引分成三个区间,分别是[-∞,3],[4,7],[8,+∞],当要查找age=5时,就会锁住第二个区间

2.表锁:

        顾名思义,就是锁住整张表,同样表锁也有读锁和写锁。可以通过Lock table XXX read/write获取表级读锁/写锁。注意,当处理完数据后,一定要通过Unlock table xxx来显示解锁

最后:附上后端技术交流圈,欢迎各位大佬入圈交流技术......V:ff1341658(先添加好友后拉群,添加好友时请备注:小白不黑)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值