MySQL-间隙锁-加锁规则
MySQL 后面的版本可能会改变加锁策略,本文只适用版本:
5.x 系列 <=5.7.24
8.0 系列 <=8.0.13
间隙锁在可重复读隔离级别下才有效,以下规则只描述了间隙锁:
原则 1:加锁的基本单位是 next-key lock,next-key lock 是前开后闭区间
原则 2:查找过程中访问到的对象才会加锁。这和锁的普适概念,竞争的资源才会加锁同理
优化 1:索引上的等值查询,给唯一索引加锁的时候,next-key lock 退化为行锁
优化 2:索引上的等值查询,向右遍历时一直走到最后一个值不满足等值条件的时候,next-key lock 退化为间隙锁;
换个描述:索引上的等值查询,会加两个间隙锁,一个是标准的间隙锁左开右闭区间,一个是退化后的间隙锁左开右开区间;最终的效果就是锁住等值这一行、上行开区间、下行开区间
一个 bug:唯一索引上的范围查询会访问到不满足条件的第一个值为止
注意:以上的加锁规则会同时命中多条,也就是会叠加;
next-key lock 和gap锁的加锁效果,注意这只是加锁效果,不是加锁流程和规则:
MySQL-间隙锁-加锁规则相关推荐
- 21 间隙锁加锁规则
间隙锁加锁规则,注意临键锁是间隙锁和行锁的总称,实际上临键锁就是行锁加间隙锁,实际上是先加间隙锁,再加行锁,这两个是分开独立的 两个原则,两个优化,一个bug 熟悉了之后就不需要了,根本 1.加锁基本 ...
- MySQL间隙锁详细分析
什么是间隙锁 间隙锁(Gap Lock):间隙锁是(RR级别下)一个在索引记录之间的间隙上的锁,可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间 首先要明确,间隙锁是为了防止 ...
- 八、Mysql 间隙锁(gap 锁)与慢查询
Mysql 间隙锁(gap 锁)与慢查询 gap锁与慢查询 gap锁 事务语法 开启事务 事务回滚 事务提交 还原点(演示) 业务设计 逻辑设计 范式设计 查询测试 反范式设计 总结 范式化设计优缺点 ...
- MySQL间隙锁(幻读解决原理)
文章目录 一.间隙锁概念 二.测试间隙锁范围加锁 场景1:用不可重复的主键id测试间隙锁 场景2:用可重复的age(有索引)测试间隙锁 场景3:实际情况需要具体分析用的到底是行锁还是表锁 三.测试等值 ...
- Mysql间隙锁实战
前言 本次实战是基于数据库mysql5.7.14 什么是间隙锁? 间隙锁是对索引记录之间间隙的锁,或者对第一个索引记录之前或最后一个索引记录之后的间隙的锁.例如:SELECT c1 FROM t WH ...
- mysql间隙锁 打开_MySQL间隙锁问题
间隙锁(Gap Lock):锁加在不存在的空闲空间,可以是两个索引记录之间,也可能是第一个索引记录之前或最后一个索引之后的空间. 最近用户反馈说系统老是出现insert时,等待超时了,最后发现是ins ...
- mysql间隙锁可重入_关于mysql 间隙锁
前段时间系统老是出现update死锁,很是纠结.经过排查发现是间隙锁!间隙锁是innodb中行锁的一种, 但是这种锁锁住的却不止一行数据,他锁住的是多行,是一个数据范围.间隙锁的主要作用是为了防止出现 ...
- mysql间隙锁触发条件,详解系列文章
java基础 1.1java的8种基本数据类型装箱拆箱 1.2重写重载封装继承多态 1.3 Stack Queue 1.7 Concurrent包 1.8面向对象 1.9 String StringB ...
- 2021字节跳动春招技术面试题:mysql间隙锁触发条件
java基础 1.1java的8种基本数据类型装箱拆箱 1.2重写重载封装继承多态 1.3 Stack Queue 1.7 Concurrent包 1.8面向对象 1.9 String StringB ...
最新文章
- Nginx 入门到实战,新手必懂。
- 极光推送maven与代码,无需修改,粘贴即用
- java八进制转十六进制_java-十进制、八进制、十六进制数互相转换
- 面试突击 002 | Redis 是如何处理已过期元素的?
- 泰森怎么会输给道格拉斯_巅峰泰森为何遭遇六连败?日本女孩不是主因,而是这位黑人超模...
- 俯瞰大雾弥漫下的鄱阳湖二桥
- 华为HCC2014的变与不变
- SQL语句备查(引用)
- Core 提交返回500 问题 记录 来自网上文章
- STM32-实现us延时
- 学习笔记——游戏打击感
- cocos2dx 3.17海外sdk接入填坑全纪录 Appodeal(广告) SDK 接入(5)
- Numpy中take的用法
- 如何将PC上的Word文档分享到朋友圈
- 网易测试工程师笔经面经(已上岸)
- 微信ipad 62 A16登录协议,小程序code 小程序sessionid 获取
- BurningStudioPortable刻录CD步骤
- 嘘,这份0项目经验应对面试的独门秘籍,千万别被你的面试官发现~
- 商用计算机 报价,ASUS - 台式机 - 商用台式电脑配置价格
- 计算机主机硬件图片,电脑主机里的各个硬件名称图片用途和使用说明