6. 锁

作者: lsh的学习笔记 | 来源:发表于2020-05-07 11:34 被阅读0次

注意:这里只讨论InnoDB引擎中的 Lock 类型的锁,不包括 latch锁。

只有当实现本身会增加开销时,行级锁才会增加开销。
InnoDB存储引擎不需要锁升级,因为一个锁和多个锁的开销是相同的。

行锁

分类
  • 共享锁(S lock):允许事务一行数据。
  • 排他锁(X lock):允许事务删除更新一行数据。
兼容性

X锁与任何的锁都不兼容,而S锁仅和S锁兼容。

兼容性

意向锁

含义

意向锁(IntentionLock)是将锁定的对象分为多个层次,意向锁意味着事务希望在更细粒度(finegranularity)上进行加锁。

InnoDB存储引擎支持意向锁设计比较简练,其意向锁即为表级别的锁。

设计目的

主要是为了在一个事务中揭示下一行将被请求的锁类型。

分类

支持两种意向锁:

  • 意向共享锁(ISLock),事务想要获得一张表中某几行的共享锁
  • 意向排他锁(IXLock),事务想要获得一张表中某几行的排他锁

最细粒度的对象进行上锁,那么首先需要对粗粒度的对象上锁。

兼容性

由于InnoDB存储引擎支持的是行级别的锁,因此意向锁其实不会阻塞全表扫描以外的任何请求

兼容性

相关文章

  • 6. 锁

    注意:这里只讨论InnoDB引擎中的 Lock 类型的锁,不包括 latch锁。 只有当实现本身会增加开销时,行级...

  • 6.全局锁、表级锁

    全局锁 对整个库实例加锁。让整个库处于只读状态的时候,可以使用这个命令,之后其他线程的以下语句会被阻塞:增删改、建...

  • 后端工程师技术要点

    基础: 1. 分布式锁 2. AOP 实现缓存 3. HSF 4. 动态代理 5. 多线程 6. 乐观锁悲观锁 7...

  • 6. Mysql全局锁和表级锁

    数据库锁设计的初衷是处理并发问题。作为多用户共享的资源,当出现并发访问的时候,数据库需要合理地控制资源的访问规则。...

  • 进程 二

    目录 1.守护进程 2.互斥锁 3.互斥锁场景抢票 4.死锁 5.IPC 6.队列 7.生产者消费者模型

  • 6.更新行时候的行锁

    行锁在引擎层由各个引擎自己实现的,MyISAM 引擎就不支持行锁 调整语句顺序,使某行锁时间尽量短 事务B 的更新...

  • 并发几个概念

    1.同步与异步 2.并发和并行 3.临界区 4.阻塞和非阻塞 5.死锁、饥饿、活锁 6.并发级别 6.1阻塞 6....

  • 线程 一

    目录 1.多线程 2.线程对比进程 3.线程间资源共享 4.守护线程 5.线程中常用属性 6.线程互斥锁 7.信号...

  • 锁锁锁锁锁锁锁锁锁锁锁锁锁锁锁

  • 又锁锁锁锁锁锁锁锁锁锁锁锁锁锁锁

    公号见

网友评论

      本文标题:6. 锁

      本文链接:https://www.haomeiwen.com/subject/xdlughtx.html