范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

面试库MySQL精准打击之间隙锁

  时隔很久,又开始码字了,在最近这段时间将会给大家带来MySQL相关的面试知识点分享,从原理及面试考察点全面剖析、浓缩、提炼面试表达点。
  前言
  本次分享MySQL间隙锁及RR隔离级别情况下常见的加锁分析,那么废话不多讲直接撸起袖子干。什么是间隙锁
  间隙锁
  OK如上图所示,MySQL中的间隙锁(next-key lock)由间隙锁(gap lock)和行锁(row lock)组成。在使用过程中,会把查询范围的整个区间进行锁定,咱们可以先这样理解,后面慢慢剖析。为什么有间隙锁
  在RR隔离级别下,则有可能出现幻读(强调新增,前后两次查询结果不一致)的情况。所以在MySQL中,加入了间隙锁对当前读下的幻读进行解决。为什么会出现幻读
  我们来分析一下此时RC隔离级别+b普通索引的加锁情况:
  RC隔离级别下的幻读
  可以看到RC隔离级别下,b=5的记录加上了X锁,但是(0,5)还有(5,10)的间隙没有锁的情况,所以在这个间隙中可以插入新的数据。
  现在我就可以回答出为什么会产生幻读了。产生幻读的原因是,行锁只能锁住行,但是新插入记录的这个动作,要更新的是记录之间的"间隙"。因此,为了解决幻读的问题,InnoDB在RR隔离级别引入了新的锁,它就是间隙锁(Gap Lock)。RC隔离级别下的加锁情况
  下面进行测试表结构创建:create table `test`(   `id` int(11) NOT NULL,   `a` int(11) NOT NULL,   `b` int(11) NOT NULL,   `c` int(11) NOT NULL,   PRIMARY KEY(`id`),   UNIQUE KEY unix_key("a"),   KEY ix_key(`b`) )ENGINE=InnoDB;  insert into test values(0,0,0,0),(5,5,5,5),(10,10,10,10),(20,20,20,20);
  创建一张test表,id是主键,a是唯一索引,b是普通索引,c是没有索引。
  现在假设是在RC隔离级别下,我们来做一个实验看看:
  事务A
  事务B
  set session transaction_isolation="READ-COMMITTED";
  set session transation_isolation="READ-COMMITTED";
  begin;
  select * from test where b=5 for update;
  返回:(5,5,5,5)
  begin;
  insert into test values(6,6,5,5);
  commit; select * from test where b=5 for update;
  返回:(5,5,5,5), (6,6,5,5)
  commit;
  由上面实验得出,在RC隔离级别下,事务A对b=5这一行记录加了X锁,但是事务B插入一条新的记录的b字段也是为5,然后在事务A中可以查出b=5有两条记录,这个就产生了"幻读"。
  也就是说,幻读是指一个事务前后两次查询同一范围的时候,后一次查询看到了前一次查询没有看到的行记录。RR隔离级别下的加锁情况
  加锁分析(以下默认都是RR隔离级别并且都是当前读)
  这里我挑选出RR隔离级别下三种常见的情况进行SQL加锁分析:RR隔离级别,where字段没有索引 RR隔离级别,where字段有普通索引 RR隔离级别,where字段有唯一索引
  (1)RR隔离级别+无索引
  RR隔离级别+无索引
  上图所示,GAP锁加在c字段的(负无穷,0),(0,5),(5,10),(10,20),(20,正无穷)。但是在RR隔离级别下,我们都是默认是用next-key Lock(行锁+间隙锁),所以我们都是默认是左开右闭,同时也得知了所有的记录都加上了X锁及GAP锁(可以理解成表锁)。因此这张表在执行该SQL期间并未commit的话,除了不加锁的快照读事务,其他任何加锁的操作都将堵塞,如果是线上环境,将会是件非常有意思的事。
  总结一下:RR隔离级别下,无索引的条件字段的当前读不仅会把每条记录都加上X锁,还会加上GAP锁。
  (2)RR隔离级别+唯一索引
  唯一索引的情况是最简单的,因为不管是RC隔离级别或者是RR隔离级别,唯一索引都只能查出一条记录,只会在对应的行记录加上X锁就没了。
  为什么会这样?
  因为GAP锁的目的是为了防止同一事务被连续两次当前读,然后两次读的情况不一致。如果能够保证字段是唯一的(唯一索引),其实就是最多只有一条记录满足条件,所以查询唯一索引的时候绝对不会出现GAP锁。
  可以理解为RR+唯一索引和RC+唯一索引的加锁情况是一样的就好了。
  (3)RR隔离级别+普通索引
  RR隔离级别+普通索引
  如上图所示,普通索引字段b=10给两条记录加了X锁,并且把聚集索引树的两条记录也加了X锁。GAP锁的是b的范围(5,10),(10,正无穷)。所以next-key Lock锁的是(5,10],(10,10],(10,正无穷]。期间只要是b在next-key Lock的范围内就更新全部阻塞。
  举例:insert into test values(6,6,6,6)就会被阻塞,原因就是RR隔离级别的间隙锁锁住了记录之间的"间隙",所以会阻塞总结这次分享了RC隔离级别下出现幻读的情况,然后分析了为什么会出现幻读。 InnoDB为了解决幻读,在RR下引入了GAP锁,和行锁组成next-key Lock 分析了三种常见情况的加锁情况 操作。

古人有多事之秋的说法,为啥秋有多事呢?又是哪些事呢?年复一年,月复一月,日复一日。一年四季就在人们的不知不觉中匆匆而来,又匆匆而去。不同的季节有不同的风景,春花秋月,冬雪夏蝉。秋天,既是一年收获粮食颗粒归仓的季节,也是草木枯黄万物凋人到中年,谁不是刘震云笔下的一地鸡毛有评论说,刘震云的成名作一地鸡毛,给了未成家而踌躇满志的年轻人一记耳光。书里的主人公小林,年仅而立,日常却在买菜上班保姆孩子这些鸡毛蒜皮中来回打转。不敢有理想,不再有抱负,他变得市交广夜听走出人生低谷的3个办法听夜晚的声音人生沉浮,总是高高低低低低低低低!主播高雅点击下方音频收听更多精彩内容和细节办法永远比困难多接受当下,集中精力解决问题人生沉浮,总是高高低低。在低潮时,有人自怨自艾萎靡空腹不能吃香蕉柿子?空腹不能吃的,其实是这4类食物关于饮食安全问题要去了解清楚,选择最佳饮食方案,可以提供营养物质的同时保护消化系统。另外,空腹哪些东西不能吃要了解清楚,许多人没有注意该问题,空腹摄入刺激性大的食物,可能会伤害胃黏痰多找脾,脾好痰自消,送你2味中药泡水喝,疏肝,和胃,化痰肝气郁结总是心情不好,身体又有痰湿,总是感觉嗓子有痰,痰多吐不完怎么办?大家好,我是中医崔大夫。平时生活中,你有没有经常感觉自己的嗓子里总有一口痰,总也吐不完,平时胃口也不好,嘴里癌细胞最喜欢的是肉吗?要想身体健康,少吃哪些肉类?望知晓一个癌字三个口,充分说明现在的人饮食是很有问题的,意味着它的形成与吃有关,胃癌肺癌乳腺癌膀胱癌甲状腺癌胰腺癌大肠癌肝癌食道癌淋巴癌,这里面十个癌症,有七个就与吃相关。难道这么多的癌绿茶是高血压的加速器?医生稳定血压,4水尽量少喝播高血压是生活中一种常见的慢性代谢性疾病,它也是影响中老年人健康的首要杀手。高血压在平时又被人们称之为财富病,因为大多的高血压患者都有长期暴饮暴食的不良习惯。高血压的发生与很多因素有脾虚,人就废了一半?脾虚的人,身体常有4个变化,你占几个脾虚,人就废了一半?真有这么严重吗?如何判断自己是不是脾虚呢?今天这篇文章就给大家说说关于脾虚的问题。有时人碰到某桩事情损失很大,会说大伤脾胃,说明脾胃在人体中的重要地位。先理一下酒精肝患者除了戒酒,还需多吃这5种食物促进肝脏修护,不妨看看酒精肝指的是酒精性肝病,发病原因是由于长期大量饮酒,导致肝脏出现慢性中毒所引起的肝损伤现象。由于患者的肝脏已经出现了损伤,就会影响到肝脏的正常功能。如果没有及时治疗,肝脏受损程度会肝净脸就白净,日常7个伤肝行为,别再做了作为医护人员,很多时候看到一个患者的外在表现,就知道其身体可能存在的疾病。有句话不是常说肝有多干净,脸就有多干净!脸色可以说是我们身体健康的晴雨表,肝脏健康的人,脸色红润有光泽,相菜籽油花生油玉米油,哪种油更健康?医生这2种油控制点厨房五味酸甜苦辣咸。当然厨房当中还有一位,那就是我们常吃的食用油,由于我国烹饪方式主要以,当然厨房当中还有一位,那就是我们常吃的食用油,由于我国烹饪方式主要以煎炒烹炸为主,因此在做
厉害!江苏将建设1个城市群2条城镇轴,有望建成6个万亿城市江苏省,是我国重要的经济大省,在2021年其GDP达到116364。2亿元,处于全国第2。从经济增速来看,大有赶超的趋势,其中,江苏省的增速为13。19,广东为11。89,高出1。江苏发布省管领导干部任前公示,涉多位县区一把手长三角一体化示范区再发17条支持政策苏商这一周关注长三角一体化示范区再发17条支持政策9月15日,长三角一体化示范区执委会举行新闻发布会,正式发布关于进一步支持长三角生态绿色一体化发展示范区高质量发展的若干政策措施。该支持政策天津全域核酸17批次药品不合规费德勒下周退役法国空中交管员罢工01hr人民币汇率在全球主要货币中表现稳健据央视新闻报道,近期国际外汇市场波动加剧,国家外汇管理局表示,综合数据来看,人民币汇率在全球主要货币中表现稳健。数据显示,8月中旬以来,主江苏南京鼓楼区十大旅游景点金陵女子大学旧址中西合璧,古典与文明碰撞出的艺术火花金陵女子大学旧址是中国第一所女子大学,民国四年(1915年)创办。校园建筑造型均是中国传统宫殿式风格,而建筑材料和结构则采用了西取消增持价格上限,2100亿万科被低估了吗?在增持万科股票这件事情上,以郁亮为首的管理层从来都没含糊过。尤其在万宝之争结束之后,郁亮执掌下的万科管理层更加意识到了股权的重要性,此后增持自家股票就是家常便饭,并且间接性的忽略了299。88元!年内最贵新股今日申购,中一签需缴近15万年内最贵新股今日申购。9月19日,万润新能(688275)网上打新启动,该股发行价达299。88元,成为2022年目前启动发行的最贵新股。同时,万润新能也是A股史上第二贵新股,仅次黄乾瑞9。19黄金还会跌吗?纸白银今日价格走势及原油最新解套建议黄金走势分析美元指数上周录得涨幅,因为投资者预计美联储在本周加息时仍将保持激进,在美国数据显示消费者信心在9月份略有改善后,美元大体上保持小幅上涨。金价上周大阴线下挫,录得四周来最飞行自行车上市,预售价近54万,网友载人无人机?最近这两年,飞行产品越来越火热。近日,有消息称,由日本一家初创企业研发世界上第一辆会飞的悬浮自行车首次亮相。该款飞行自行车预售价近540万,目前这款飞行自行车已经在日本上市。从造型三年磨一剑恒驰5正式量产9月16日,恒驰5在天津工厂正式量产,这是恒驰汽车的重要时刻。新能源汽车是世界汽车工业史上的一次革命,为了抓住这个巨大机遇,2019年初,恒大开始布局新能源汽车产业,以行动实践企业iOS16。1Beta1发布,新增清洁能源充电今晨,苹果发布了iOS16。1Beta1,本次的版本号为20B5045d。距离上一个测试版版时隔了8天的时间,让我们一起都来看看吧。自定义锁屏优化在锁屏界面长按进行自定义,更方便的小电视潮充全新妙磁抗菌壳!iPhone配件精选,认准PANDAER不吃亏9月16日,iPhone14系列正式开售,不少人也在AppleStore门前蹲点,以便第一时间拿到手机。而在许多人分享拿到新机喜悦的同时,做数码周边的国产品牌PANDAER也被果粉沈阳房价四连跌,沈阳房价跌幅超过10万元,沈阳楼市分析第43期沈阳楼市出台了那么多救楼市的政策,但是依旧没能让沈阳楼市热起来,沈阳房价还是以下跌为主。在上个月里面,沈阳新房房价环比下跌了0。8。同比下跌了4。2,这个跌幅对于沈阳楼市来说,已经老美的高通胀,我们的机会自从2020年新冠疫情爆发以来,美国政府应对经济危机的办法只有一招就是印钱!天量的美元流入了市场,一年之10万亿美元。自2008年金融危机以来,美国的通胀始终控制在2的温和范围内,利率一降再降,如何理财?可考虑以下几种方法摘要现如今,银行存款利率一降再降,央行下调MLF10个基点,LRP今年一降再降,银行大额存单一单难求,小银行又频频出现问题,自己购买的各种理财产品收益却一再下降,这让不少追求稳健理预制菜资本大量涌入会成为下一个风口行业吗?2022年9月19日,星期一。最近我的几个地产群里对投资预制菜门店讨论热烈,群里已经有北京的几个原做地产投资的朋友开始转行做预制菜门店。在北京开了二家社区预制菜门店,成都一家店在装超过65万亿的城投债务困局,怎么解?内容提要1城投债托管人与发行人为何双双遭罚?因城投债已陷困局2楚雄国投这种集融资投资城建项目管理于一体的政府投融资平台,全国有3千多家,背负了近14万亿未偿债券3未偿付债券仅是政府老家的古树我老家有好多大树,大多是百年以上的古树,散落在村子的旮旮旯旯,有樟树有枫香,也有柏树,还有一些桕树和桑树,这都是一些老不死的树,它们历尽了沧桑,尝遍了人间冷暖和炎凉世态,见证了我们牵手恋爱的唯美情话,句句甜到心窝里一欠你的情书我只写三行,剩下的浪漫,我用一生补偿。二海绵不能没有宝宝,蜡笔不能没有小新,樱桃不能没有小丸子,我不能没有你。三我觉得你跟天上的星星一样好看,但是你和星星的区别是,星星云南的秋日,爱了,爱了如果说哪个季节最虚幻,我首选秋天,一个没有真实感的季节,恰似一个喝醉的人,潇洒间,轻易地就抛开一切。郁达夫说秋天,无论在什么地方的秋天,总是好的。云南的秋,没有通红的枫叶,只有山间历史的沉重原创作者玩童!九一八的钟声背负着历史的沉重中华民族的耻辱铭刻在十四亿人心中人们停下匆忙的脚步静听警报长鸣勿忘历史勿忘身后爹娘亲情三千五百万同胞在禽兽噬血的残暴中丧命历史没有走远记忆也不热身赛看战力山东高速男篮稳中有升,新赛季三人值得王晗重用20222023赛季CBA联赛还有半月时间就要和大家见面了,在新赛季开赛前,山东高速男篮备战工作早早展开,在89月份进行了一系列的热身赛,对手既有CBA的传统强队,也有一些实力偏弱IRA重塑电动汽车行业版图车载电池企业美国本土再交锋大洋彼岸,特斯拉宣布停止了德国柏林工厂的电池生产,管理层正在讨论将美国工厂的电池生产设备从德国工厂搬运至美国本土而在中国,比亚迪的耿直董秘朋友圈长文引发舆论关注,总结大意就是美国电