手机版
网站地图
美文美图
最新动态
你好,欢迎访问
好美文阅读网
个性皮肤
搜索
网站首页
美文
文章
散文
日记
诗歌
小说
故事
句子
作文
签名
祝福语
情书
范文
读后感
文学百科
美文摘抄
节日文章
名家散文
网名大全
座右铭
口号大全
面试技巧
说说大全
阅读答案
诗词默写
流言蜚语
节日祝福
好句子
经典台词
谚语大全
亲情故事
友情故事
表白情书
工作报告
活动总结
心得体会
专题汇总
美文网首页
3.行级锁
3.行级锁
作者:
资深菜鸡程序员
| 来源:发表于
2021-06-09 18:03 被阅读0次
行级锁介绍
InnoDB存储引擎实现
一. InnoDB的行级锁,按照锁定范围来说,分为三种:
1.记录锁(Record Locks):锁定索引中一条记录。 主键指定 where id=3
2.间隙锁(Gap Locks): 锁定记录前、记录中、记录后的行 RR隔离级 (可重复读)-- MySQL默认隔离级
当我们用范围条件而不是相等条件检索数据,并请求共享或排他锁时,InnoDB会给符合条件的已有数据记录的索引项加锁;对于键值在条件范围内但不存在的记录,叫做“间隙(GAP)”,InnoDB也会对这个“间隙”加锁,这种锁机制就是所谓的间隙锁(NEXT-KEY)锁。
3.Next-Key 锁: 记录锁 + 间隙锁
二.InnoDB的行级锁,按照功能来说,分为两种:(以下案例都是在同一个事务中)
1.共享读锁(S):允许一个事务去读一行,阻止其他事务获得相同数据集的排他锁共享读不能。
select * from mylock where id=1 LOCK IN SHARE MODE;
加完锁以后在事务未提交时候同session可以修改操作,和读操作,不同session不可以修改操作但可以读操作。
在同一个事务 中如果在没有索引的字段上添加读锁会导致锁升级到表锁,会把整张表锁住。
2.排他写锁(X):允许获得排他写锁的事务更新数据,阻止其他事务取得相同数据集的共享读锁(不是读)和排他写锁。
手动添加:SELECT * FROM table_name WHERE ... FOR UPDATE;
写锁是自动添加的,在同一个session中未提交的时候可以读取和修改 ,不同session可以读操作因为读不加锁,不可以写操作。
3.InnoDB也实现了表级锁,也就是意向锁,意向锁是mysql内部使用的,不需要用户干预。
意向共享锁(IS):事务打算给数据行加行共享锁,事务在给一个数据行加共享锁前必须先取得该表的IS锁。
意向排他锁(IX):事务打算给数据行加行排他锁,事务在给一个数据行加排他锁前必须先取得该表的IX锁。
意向锁的主要作用是为了【全表更新数据】时的性能提升。否则在全表更新数据时,需要先检索该表是否某些记录上面有行锁。
三.间隙锁
间隙锁防止两种情况
1、防止插入间隙内的数据
2、防止已有数据更新为间隙内的数据
下面是案例数据:
间隙的范围:
update news set number=3 where number=4;
number:234
id:12345
产生间隙锁情况,不同session在事务中操作:
1.非唯一索引等值(只要number(where后面的)在间隙里(2 3 4),不包含最后一个数(5)则不管id是多少都会阻塞)
update news set number=3 where number=4;
2.主键索引范围(只要id(在where后面的)在间隙里(2 4 5),则不管number是多少都会阻塞)
update news set number=3 where id>1 and id <6;
3.非唯一索引无穷大(id和number同时满足注:非主键索引产生间隙锁,主键范围产生间隙锁)
update news set number=3 where number=13 ;
相关文章
网友评论
本文标题:
3.行级锁
本文链接:
https://www.haomeiwen.com/subject/nvumtltx.html
延伸阅读
那年盛夏诗歌
环境监察队工作总结范文
优秀教师学习心得范文
华胥引的读后感300字
《Its red》教学反思范文
农资购销的合同范本
竞选中队委优秀演讲稿
辞金蹈海的成语解释
《世纪宝鼎》公开课教案设计
因为爱你,所以牵挂
今生今世红尘醉——美到
一个90后的内心独白
致已逝去的高中年华
深度阅读
您也可以注册成为美文阅读网的作者,发表您的原创作品、分享您的心情!
情人节
母亲节
重阳节
清明节
端午节
植树节
元宵节
妇女节
愚人节
圣诞节
父亲节
教师节
儿童节
劳动节
青年节
建军节
万圣节
平安夜
光棍节
中秋节
国庆节
感恩节
腊八节
更多话题
栏目导航
摄影
故事
互联网
读书
旅行
热点阅读
追寻光,成为光
一家四口千里对联一副,异地过年欢乐喜庆一堂
随笔~这只是日记
和喜欢的一切在一起
自从项目用了 Disruptor,性能提升了 2.5 倍!
2021-02-03
立春思乡
《月亮与六便士》第二十~二十二章 读书笔记
张梨铺家书(1)
Spring-web源代码阅读之对HTTP协议中概念的抽象(1)
网友评论