MySQL中常见锁
admin
2023-04-15 13:41:35
0

1.MySQL服务器逻辑架构

      图片来源:MySQL官网
      MySQL中常见锁
      每个连接都会在MySQL服务端产生一个线程(内部通过线程池管理线程)。比如:一个select语句进入,MySQL首先会在查询缓存中查找是否缓存了这个select结果集,如果没有则继续执行解析→优化→执行得过程;否则直接从缓存中获取结果集。

2.MySQL锁

共享锁与排他锁(Shared and Exclusive Locks)

      共享锁和排他锁都是标准的行级锁
      1)共享锁S:标准的读锁,读锁允许多个连接可以同一时刻并发读取同一资源,互不干扰。
      2)排他锁X:又称写锁,一个写锁会阻塞其他的写锁或读锁,保证同一个时刻只有一个连接可以写入数据,同时防止其他用户对这个数据的读写

锁类型英文名又称同一时刻共同点
共享锁SShared Locks读锁同一时刻,允许多个连接并发的读取同一资源,互不干扰。两者都是锁机制本身的策略,通过这两种策略对锁进行了区分
排他锁XExclusive Locks 写锁同一时刻只有一个连接可以写入数据,同时防止其他用户对这个数据的读写。同上
2.2意向锁(Intention Locks)

      背景:多粒度锁的并存场景。
      InnoDB支持多粒度锁(锁粒度:可分为行锁表锁),允许行锁和表锁共存。为了实现多粒度级别的锁定,InnoDB使用了意图锁。
      意向锁表级别的锁。先提前声明的一个意向,并获取表级别的意向锁(共享意向锁IS或排他意向锁IX),如果获取成功,则稍后将要或正在(才被允许),对该表的某些行加锁(S或X)了。
      注意:除了LOCK TABLES...WRITE,会锁住表中的所有行,其他场景意向锁实际锁不住任何行。
      意向协议锁:在事务能够获取表中的行上的共享锁之前,他必须首先获取表上的IS锁或更强的锁。在事务能够获取表中的行上的独占锁之前,它必须首先获取表上的IX锁
      意向锁实现的背景是多粒度锁的并存场景,兼容性如下:

XIXSIS
XConflictConflictConflictConflict
IXConflictCompatibleConflictCompatible
SConflictConflictCompatibleCompatible
ISConflictCompatibleCompatibleCompatible

      Conflict:互斥
      Compatible:兼容
      意向锁仅表示意向,是一种较弱的锁,意向锁之间兼容并行(IS,IX之间兼容并行)。X与IS,IX互斥,S与IX互斥。意向锁是比X/S更弱的锁,存在一种预判的意义。先获取更弱的IS,IX锁,如果获取失败就不必再获取更强S,X锁。

相关内容

热门资讯

地漏怎么防臭呢,有专门的防臭地... 地漏下方的排水管要装S型储水湾,也有专门的防臭地漏 非常芯地漏就是防臭地漏,非常芯地漏原理:重...
12名农民工遭遇“车位抵薪”:... 极目新闻记者 舒隆焕陕西西安12名农民工遭遇“车位抵薪”一事有了最新进展。5月12日,极目新闻记者从...
实域科技申请立体相机及其控制方... 国家知识产权局信息显示,深圳实域科技有限公司申请一项名为“立体相机及其控制方法”的专利,公开号CN1...
从“一”到“十”,解码天舟十号... 5月11日8时14分,长征七号运载火箭托举着天舟十号货运飞船在文昌航天发射场腾空而起。约10分钟后,...
他是“遗传算法之父”,也是横跨... “约翰·亨利·霍兰德(John Henry Holland,1929年2月2日-2015年8月9日)...
人形机器人量产元年开启 产业链... 来源:21世纪经济报道 ● 本报记者 刘英杰 今年以来,人形机器人产业频频传来量产消息。从特斯拉弗里...
视频丨新装备、新技术集中亮相 ... 今年5月12日是第18个全国防灾减灾日,主题是“人人讲安全、个个会应急——提高防灾减灾救灾能力”,国...
从一座“灯塔工厂”看海辰储能的... 央广网北京5月12日消息(记者 刘家怡)在重庆市铜梁区,每天有超过10万颗储能电芯下线,发往全球市场...
东莞松山湖高新区“两创融合”催... 当科学家听懂了企业话 东莞松山湖高新区“两创融合”催生新能源新动能 问起扎根东莞松山湖的新能源企业和...
厕所内装摄像头要监控啥 澎湃新闻记者 蒋立冬 阳柳厕所内装摄像头要监控啥“中学在男厕所安装摄像头”一事引发关注。5月11日晚...