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锁。

相关内容

热门资讯

重磅消息“新版荣耀牛牛怎么装挂... 您好:新版荣耀牛牛这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款...
【第一消息】“开心游戏怎么开挂... 网上科普关于“开心游戏有没有挂”话题很是火热,小编也是针对开心游戏作*弊开挂的方法以及开挂对应的知识...
特朗普与泽连斯基会晤,回应年内... 美国东部时间28日下午,美国总统特朗普在佛罗里达州海湖庄园与乌克兰总统泽连斯基就拟议中的俄乌“和平计...
今日重大通报“天天微友炸/金/... 家人们!今天小编来为大家解答天天微友炸/金/花透视挂怎么安装这个问题咨询软件客服徽4282891的挂...
俄罗斯团体评年度热词 “拉布布... 新华社莫斯科12月28日电(记者栾海)临近岁末,俄罗斯多家团体评选出本国2025年度热词,“胜利”、...
我来教教您“白金岛歪胡子开挂器... 有 亲,根据资深记者爆料白金岛歪胡子是可以开挂的,确实有挂(咨询软件无需...
今日重磅消息“决战恩施麻将真的... 您好:决战恩施麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款...
【今日要闻】“马鞍山麻将真的有... 您好:马鞍山麻将这款游戏可以开挂,确实是有挂的,需要了解加客服微信【4282891】很多玩家在这款游...
玩家攻略科普“新好游牛牛是不是... 玩家攻略科普“新好游牛牛是不是有挂?”(其实是有挂)您好,新好游牛牛这个游戏其实有挂的,确实是有挂的...
重磅消息“十胡卡辅助器?”(太... 家人们!今天小编来为大家解答十胡卡透视挂怎么安装这个问题咨询软件客服徽4282891的挂在哪里买很多...