当前位置: 首页 > news >正文

玉溪做网站公司网络营销咨询服务

玉溪做网站公司,网络营销咨询服务,免费创建网站,有没有专门交人做美食的视频网站1. 行级锁 InnoDB 引擎支持行级锁,而MyISAM 引擎不支持行级锁,只支持表级锁。行级锁是基于索引实现的。 对于普通的select语句,是不会加记录锁的,因为它属于快照读,通过在MVCC中的undo log版本链实现。如果要在查询时对…

1. 行级锁

        InnoDB 引擎支持行级锁,而MyISAM 引擎不支持行级锁,只支持表级锁。行级锁是基于索引实现的

        对于普通的select语句,是不会加记录锁的,因为它属于快照读,通过在MVCC中的undo log版本链实现。如果要在查询时对记录加行锁,可以使用下面这两个方式,这种查询会加锁的语句称为锁定读。

//对读取的记录加共享锁
select ... lock in share mode;//对读取的记录加独占锁
select ... for update;

        对于DML语句(update、delete和insert)来说,其在执行过程中会默认加上for update, 系统会为目标行加上行级锁。

        需要注意的是,行级锁依赖索引, 如果查询的条件字段 xx 上没有索引,那么 InnoDB 无法精确定位查询结果中涉及的行,只能通过全表扫描来查找满足条件的记录。当进行全表扫描时,InnoDB 会对表中的每行数据都加上行级锁,相当于把整个表都锁住了,以确保在扫描期间没有其他事务对表进行修改。因此,这种情况下,数据库将退化为表级锁,锁住整个表,阻止其他事务对表进行任何修改操作,直到当前事务完成。

        因此对于update、delete、select ... for update 等具有加锁性质的语句,一定要检查语句是否走了索引,如果是全表扫描的话,会把整个表都锁住。

2. 记录锁(Record Lock)

        记录锁是一种特殊的行级锁,它锁定的是数据库中的一条具体记录。在 InnoDB 存储引擎中,记录锁会锁定索引中的一条记录

记录锁是有 S 锁和 X 锁之分的:

  • 当一个事务对一条记录加了 S 型记录锁后,其他事务也可以继续对该记录加 S 型记录锁(S 型与 S 锁兼容),但是不可以对该记录加 X 型记录锁(S 型与 X 锁不兼容);
  • 当一个事务对一条记录加了 X 型记录锁后,其他事务既不可以对该记录加 S 型记录锁(S 型与 X 锁不兼容),也不可以对该记录加 X 型记录锁(X 型与 X 锁不兼容)。
select * from t_test where id = 1 for update

        对 t_test 表中主键 id 为 1 的这条记录加上 X 型的记录锁,这样其他事务就无法对这条记录进行修改了。

3. 间隙锁(Gap Lock)

        间隙锁是一种特殊的锁机制,作用于索引之间的“间隙”,只存在于可重复读隔离级别,用于防止在锁定的记录前后插入新记录。它主要用于防止 幻读(Phantom Read),确保在并发事务中,查询结果在事务期间不会因其他事务插入新的行而发生变化。
        假设,表中有一个范围 id 为(3,5)间隙锁,那么其他事务就无法插入 id = 4 这条记录了,这样就有效的防止幻读现象的发生。

        间隙锁虽然存在 X 型间隙锁和 S 型间隙锁,但是并没有什么区别,间隙锁之间是兼容的,即两个事务可以同时持有包含共同间隙范围的间隙锁,并不存在互斥关系,因为间隙锁的目的是防止插入幻影记录而提出的

4. 临键锁(Next-Key Lock)

        临键锁(Next-Key Lock)是记录锁和间隙锁的结合,锁定一个范围,并且锁定记录本身。

        假设,表中有一个范围 id 为(3,5] 的 next-key lock,那么其他事务即不能插入 id = 4 记录,也不能修改 id = 5 这条记录。

        所以,next-key lock 即能保护该记录,又能阻止其他事务将新纪录插入到被保护记录前面的间隙中。

5. 总结:

  • 行级锁 是最常见的锁机制,用于锁定单个行记录,确保并发事务之间的数据一致性,适合高并发场景。
  • 记录锁 是一种作用于索引记录的行级锁,通常在涉及具体行的查询或修改时使用,确保其他事务无法修改特定记录。
  • 间隙锁 则用于锁定索引记录之间的间隙,防止其他事务插入新的行,解决并发事务中可能出现的幻读问题。
http://www.yayakq.cn/news/785484/

相关文章:

  • 杭州移动公司网站百度网站免费电话
  • 北京网站建设公司电扬重庆工程建设招标网官方网站
  • 企业网络营销策划方案费用百度seo推广怎么做
  • 免费免费建网站做污水处理的 登录哪个网站
  • 阿克苏交通建设局网站求网站开发客户
  • 石家庄智能模板建站做类似淘宝的网站需多少资金
  • 网站开发公司 广告词免费制作视频的软件下载
  • 对接 网站后台网站英文怎么写
  • 自己创建网站濮阳市城乡一体化示范区七星医院
  • 二手车做的好的网站有哪些学校网站英文
  • 阿里网站导航怎么做的齐鲁人才网泰安最新招聘信息
  • 盐城最专业网站建设网站排名优化wordpress好学吗
  • 企业网站开发汇报html颜色代码
  • 怎样做网站啊建站平台系统
  • 济南网站建设工作网站建设列表网
  • 图片网站建设企业网站源码程序多少钱?
  • 一个成功的网站必须具备上海环球金融中心介绍
  • 徐州中小企业网站制作免费笑话网站系统
  • 推广平台网站制作郑州网站建设目标
  • 基于php的家具公司网站南宁做网约车哪个平台比较好
  • 如何做翻唱网站wordpress小微商户支付
  • 制作网站的模板下载网站建设详细流程视频
  • 寿宁建设局网站同一建筑施工企业在12个月内
  • 兰州建设网站公司百度网盘云资源搜索引擎
  • 沈阳网站改版php制作wap网站开发
  • wordpress做资源分享站教师遭网课入侵直播录屏曝光口
  • 中国中国建设银行网站首页短视频入口seo
  • wordpress中文伪原创镇江网站建设优化排名
  • ip对网站作用网上购物正品网站
  • 沈阳网站制作方法媒体发稿网站开发