【MySQL】锁篇

SueWakeup

                                                      个人主页:SueWakeup

                                                      系列专栏:学习技术栈

                                                      个性签名:保留赤子之心也许是种幸运吧 

本文封面由 凯楠📸友情提供

目录

本系列专栏

 1. MySQ 中的锁

2. 表锁和行锁

表锁

行锁

3. InnoDB 存储引擎的三种行级锁

4. 悲观锁和乐观锁的区别

悲观锁

乐观锁

注:手机端浏览本文章可能会出现 “目录”无法有效展示的情况,请谅解,点击侧栏目录进行跳转   


本系列专栏

1.数据库排名

2.【MySQL】数据库开篇

3.【MySQL】索引篇

4.【MySQL】事务篇

5.【MySQL】锁篇


 1. MySQ 中的锁

锁的分类描述
按属性分类
  • 共享锁(读锁、S锁)
  • 排他锁(写锁,X锁)
按粒度分类
  • 表锁
  • 行锁(记录锁、间隙锁、临键锁)
按状态分类
  • 意向共享锁
  • 意向排它锁

2. 表锁和行锁

表锁

  1. MySQL中锁定粒度最大的一种锁
  2. 实现简单,资源消耗少,加锁快,不会出现死锁
  3. 触发锁冲突概率高,并发度最低

行锁

  1. MySQL中粒度最小的一种锁
  2. 只针对当前操作的行进行加锁,大大减少数据库操作的冲突
  3. 加锁的开销大,加锁慢,会出现死锁
  4. 加锁粒度最小,并发度高

3. InnoDB 存储引擎的三种行级锁

  • Record lock:记录锁,单个行记录上的锁
  • Gap lock:间隙锁,锁定一个范围,不包括记录本身
  • Next-key lock:Record+Gap 临键锁,锁定一个范围,包含记录本身

4. 悲观锁和乐观锁的区别

悲观锁

总是假设最坏的情况,每次读取数据都默认其他事务会修改数据,会进行加锁操作,操作之后释放锁

乐观锁

一般情况不会造成冲突,在数据进行提交更新时,才会对数据的冲突与否进行检查,一般是通过版本号控制,适用于读多写少的场景


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值