锁相关

1.MyISAM与InnoDB关于锁方面的区别是什么

  • InnoDB

    • 默认使用的是行级锁,也支持表级锁
    • 涉及有索引的sql语句使用行级锁,没有走索引的sql语句直接使用的时表锁
  • MyISAM

    • 默认用的是表级锁,不支持行级锁
    • 1.表级锁会锁住整张表

2.锁类型

  • 共享锁:

    • 用于不更改或者不更新数据只读的操作,如select语句,例如事务T对数据A加上共享锁后,其他事务只能对A再加上共享锁,只能读数据,不能修改数据
    • 对于select 语句InnoDB一般情况下是不会加共享锁,(正常情况能查询就代表没有排他锁,如果存在的话 等待就是了),如果需要测试,可以关闭autocommit 自动提交,然后开启两个会话进行测试
    • 显示添加共享锁:SELECT … LOCK IN SHARE MODE;
  • 排他锁:

    • 用于修改数据的操作,如Insert/Update/Delete 确保不会同时对同一资源进行更新
    • 对于Inser/Update/Delete InnoDB会自动给涉及的数据加上排他锁
    • 显示添加排他锁:SELECT … FOR UPDATE;
  • 乐观锁:

    • 想法很乐观,认为这次的数据操作不会造成数据冲突,在处理数据前不对数据进行加锁,而是在更新时,判断

    • 示例

      • 在这里插入图片描述
  • 间隙锁

    • 当我们用范围条件条件检索数据(非聚簇索引、非唯一索引),并请求共享或排他锁时,InnoDB会给符合条件的数据记录的索引项加锁;对于键值在条件范围内但并不存在的记录,称为间隙,InnoDB也会为这些间隙加锁,即间隙锁。

    • 需要满足的三个条件

      • 1.隔离级别未RR
      • 2.当前读
      • 3.查询条件能够走到索引
    • 作用

      • 间隙锁的目的是为了让其他事务无法在间隙中新增数据。
      • 防止在间隙中执行insert语句
      • 防止将已有数据update到间隙中
  • 意向锁

    • 数据库自身行为,不需要人工干预,在事务结束的时候会自行解除
    • 意向锁的主要作用是提升存储引擎性能,innoDB中的S锁和X锁是行锁,每当事务到来时,存储引擎需要遍历所有行的锁持有情况,性能较低,因此引入意向锁,检查行锁前先检查意向锁是否存在,如果存在则阻塞线程。
  • 相关地址:

    • https://blog.csdn.net/weixin_45395031/article/details/108803340
    • https://www.cnblogs.com/zhaoshaopeng/p/13527651.html
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MySQL面试时,相关的知识是经常会被问到的,以下是一些可能会涉及的相关知识点: 1. 行和表:MySQL支持行和表两种机制。行是指在操作一行数据时,只针对该行加,其他行不受影响;表是指在对一张表进行操作时,对整个表加,其他操作需要等待。 2. 共享和排他:MySQL支持共享和排他两种类型的。共享是指多个事务可以同时对同一数据进行读取,但不能进行修改;排他是指在对数据进行修改时,需要对数据进行排他定,其他事务无法同时进行读取和修改。 3. 乐观和悲观:MySQL中的机制可以分为乐观和悲观两种。乐观是指在事务提交时进行冲突检测,如果没有冲突,则提交成功,否则回滚;悲观是指在事务执行期间,对数据进行定,保证事务的独占性。 4. 死:MySQL中的死是指两个或多个事务相互等待对方释放资源,导致事务无法继续执行的情况。解决死问题的方法包括超时机制、资源分配策略、等待图等。 5. 粒度:MySQL中的粒度是指定数据的范围大小。粒度过大,会导致冲突概率增大,粒度过小,会导致系统开销增大。需要根据具体的业务需求和数据规模确定合适的粒度。 以上是MySQL面试中可能涉及到的相关的知识点,应聘者需要了解这些知识点,并能够清晰地解释其原理和应用场景。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值