查看完整视频
评论可见

您需要在视频最下面评论,方可查看完整视频

积分观看

您支付积分,方可查看完整视频

{{user.role.value}}
付费视频

您支付费用,方可查看完整视频

¥{{user.role.value}}
专属视频

只允许以下等级用户查看该视频

升级
会员专享

最全MySQL锁详解:表/行/页锁、共享/排它锁、悲观/乐观锁等

众所周知,索引、事务和锁是mysql中非常重要功能,同时也是面试的重点和难点。

索引事务我之前重点讲解了,这节课会重点来讲解MySQL涉及到的锁,比如:

MySQL锁包含哪些类型?

不同的存储引擎采用什么锁?

数据库的读写锁是哪个?

行锁的底层实现?

…等等

我都通过本节课一并讲解。

MySQL锁的类型

隐藏内容,您需要满足以下条件方可查看
End

课后作业

隐藏内容,您需要满足以下条件方可查看
End

 

 

MySQL

MySQL架构体系&SQL查询执行全过程解析

2020-8-31 18:46:39

MySQL

MySQL事务ACID与隔离级别详解

2020-8-26 17:38:50

5 条回复 A文章作者 M管理员
  1. 1.谈谈你对事务与锁的理解?
    事务是指作为单个逻辑工作单元执行的一系列操作,要么完全的执行,要么完全地不执行。必须满足ACID属性
    事务会有并发控制的问题,会出现脏读、可不重复读、幻读的问题
    数据库事务隔离级别是为了解决事务并发可能出现的问题
    数据库的隔离级别是通过数据库锁实现的

    2.常见的mysql数据库锁有哪些?
    3.各自的优劣势与应用场景?
    表级锁:开销小,加锁快,不会出现死锁,锁定粒度大,发生锁冲突的概率最高,并发度最低。试用于查询为主,更新少的情况。
    行级锁:开销大,加锁慢;会出现死锁;锁定粒度最小,发生冲突的概率最低,并发度也最高。
    页面锁:开销和加锁时间介于表锁和行锁之间;会出现死锁;锁定粒度介于表锁和行锁之间,并发度一般。
    InnoDB行锁的类型
    共享锁(读锁):多个事务对于同一数据可以共享一把锁,都能访问到数据
    排它锁(写锁):对某一资源加排它锁,自身可以进行增删改查,其他人无法进行任何操作
    InnoDB表锁的类型
    意向锁
    意向共享锁:事务想对表中的某些记录加上共享锁
    意向排它锁:事务想对表中的某些记录加上排它锁
    InnoDB行锁实现方式(锁的是索引)
    记录锁:单个记录上的锁
    间隙锁:锁定一个范围,但不包括记录本身
    Next-Key Lock:间隙锁+记录锁,锁定一个范围,并且锁定记录本身

    4.MySQL如何解决死锁?
    等待,直到超时
    发起死锁检测,主动回滚一条事务,让其他事务继续执行

    • 事务、锁、索引,这是3大必考点,再加上我下周要讲的性能优化,如果说这几点都掌握了,基本就没有问题了,加油 ✗拳头✗ 。

      备注:其实死锁的关键在于,两个(或以上)的Session加锁的顺序不一致,这里还可以参考我之前在Java多线程与并发编程里面讲到的死锁,其实道理都是一致的,防止死锁是核心关键点。

  2. 老师看下我的截图,事务1 对 number=13 for update, 会触发next key锁吗??

个人中心
今日签到
搜索