MySQL数据库行级锁之间隙锁、临键锁

news2024/10/6 10:32:01

间隙锁

默认情况下,InnoDB在 REPEATABLE READ事务隔离级别运行,InnoDB使用 next-key 锁进行搜索和索引扫描,以防止幻读。

  • 索引上的等值查询(唯一索引),给不存在的记录加锁时, 优化为间隙锁 。
  • 索引上的等值查询(非唯一普通索引),向右遍历时最后一个值不满足查询需求时,next-key lock 退化为间隙锁。
  • 索引上的范围查询(唯一索引)–会访问到不满足条件的第一个值为止。

注意:间隙锁唯一目的是防止其他事务插入间隙。间隙锁可以共存,一个事务采用的间隙锁不会阻止另一个事务在同一间隙上采用间隙锁。

演示

数据库的表
在这里插入图片描述

索引上的等值查询(唯一索引),给不存在的记录加锁时, 优化为间隙锁

执行更新id为88的数据
在这里插入图片描述
查看此时行锁和意向锁的情况:id为60和100之间加入的间隙锁
在这里插入图片描述

索引上的等值查询(非唯一普通索引),向右遍历时最后一个值不满足查询需求时,next-key lock 退化为间隙锁

数据
在这里插入图片描述

-- 查询的条件为id>=19,并添加共享锁
select * from stu1 where age=3 lock in share mode;

查看意向锁及行锁的加锁情况
在这里插入图片描述

索引上的范围查询(唯一索引)–会访问到不满足条件的第一个值为止

数据
在这里插入图片描述
执行的sql语句:

-- 查询的条件为id>=19,并添加共享锁
select * from stu1 where id>=19 lock in share mode;

在这里插入图片描述
查看意向锁及行锁的加锁情况
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/47197.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据字典功能

我们在项目中会有很多的下拉框,这些下拉框都有一个特点,就是键值对的存在 实现方案: 直接硬编码写在html代码中, 缺点:新增修改需要修改代码为每个下拉框都设计一个表,然后提供CRUD功能 , 缺点 : 很多表,很多重复的CRUD代码使用数据字典的方式 ,使用字典类型表和字…

CTFHUB-web-SQL注入

整数型注入 字符型注入 得到数据库名 sqli http://challenge-f7a63a00793e62c6.sandbox.ctfhub.com:10800/?id-1 union select 1,database() 爆sqli数据库的数据表 爆flag表的所有列: http://challenge-f7a63a00793e62c6.sandbox.ctfhub.com:10800/?id-1 union s…

[Azkaban] No active executors found分析

启动AzkabanWebServer报如下错误: 点击进入 ActiveExecutors.setupExecutors发现调用的是 loadExecutors()继续深入 private ImmutableSet<Executor> loadExecutors() throws ExecutorManagerException {logger.info("Initializing executors from database.&q…

window 下 达梦数据库的备份和还原

DM 提供的各种工具进行备份还原与恢复的操作&#xff0c;包括 DIsql工具、DMRMAN 工具、图形化客户端管理工具 MANAGER 和 CONSOLE。 DIsql 工具用于执 行联机的数据备份与数据还原&#xff0c;包括数、归档备份据库备份、表空间备份与还原、表备份与 还原&#xff1b; DMRMA…

docker-compose安装nacos

文章目录一、安装nacos1.docker-compose.yml2.nacos数据库表结构3.docker-compose 构建运行4.检查nacos日志6.测试访问&#xff1a;TODO:二、nacos为注册中心&#xff1a;项目测试1.新建maven项目&#xff1a;2.配置pom.xml3.配置application.properties4.激活服务发现客户端5.…

117.Django-缓存redis

1. 概述 ​ 动态网站的基本权衡是&#xff0c;它们是动态的。每次用户请求页面时&#xff0c;Web服务器都会进行各种计算 - 从数据库查询到模板呈现再到业务逻辑 - 以创建站点访问者看到的页面。从处理开销的角度来看&#xff0c;这比标准的文件读取文件系统服务器要耗时多了。…

数据库、计算机网络,操作系统刷题笔记4

数据库、计算机网络&#xff0c;操作系统刷题笔记4 2022找工作是学历、能力和运气的超强结合体&#xff0c;遇到寒冬&#xff0c;大厂不招人&#xff0c;可能很多算法学生都得去找开发&#xff0c;测开 测开的话&#xff0c;你就得学数据库&#xff0c;sql&#xff0c;oracle&…

【POJ No. 1195】 矩形区域查询 Mobile phones

【POJ No. 1195】 矩形区域查询 Mobile phones 北大 OJ 题目地址 【题意】 移动电话的基站区域分为多个正方形单元&#xff0c;形成S S 矩阵&#xff0c;行和列的编号为0&#xff5e;S -1&#xff0c;每个单元都包含一个基站。一个单元内活动手机的数量可能发生变化&#xff…

[附源码]Python计算机毕业设计Django大学生考勤管理系统论文

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

区块链存储优化——从MPT树到KV存储

MPT树存储的优缺点 区块链如果采用MPT树存储&#xff0c;大概会有以下优点&#xff1a; 可用全局数据的根哈希做共识&#xff0c;数据篡改会被立即发现&#xff1b;可以查询任意历史区块对应时刻的所有数据&#xff1b;方便从指定区块开始同步数据&#xff0c;因为正如上面所…

Codeforces Round #790 (Div. 4) G. White-Black Balanced Subtrees 感觉很好的树形dp的板子题

翻译&#xff1a; 您得到一个有根的树&#xff0c;其中包含从1到&#x1d45b;编号为&#x1d45b;的顶点。根结点是顶点1。还有一个字符串&#x1d460;表示每个顶点的颜色:如果&#x1d460;&#x1d456;&#x1d671;&#xff0c;那么顶点&#x1d456;是黑色的&#xff0…

MongoDB实战:应用场景以及Spring和mongodb的整合

前言 mongodb是非关系型数据库&#xff0c;他的存储数据可以超过上亿条&#xff08;老版本的mongodb有丢数据的情况&#xff0c;新版本不会有&#xff0c;网上说的&#xff09;&#xff0c;mongodb适合存储 一些量大表关系较简单的数据&#xff0c;例如用户信息&#xff0c;用户…

linux 多台机器修改时间同步

修改东八区 首先第一步&#xff0c;通过命令 &#xff1a;date -R 查看当前系统所在时区。如是0800&#xff0c;则是东八区&#xff0c;也就是我们当下的北京时间&#xff0c;如不是&#xff08;如下图&#xff09;&#xff0c;做如下调整。 命令行键入命令&#xff1a;tzsele…

认识与了解前端Dom

Dom 文档对象模型 Dom是关于创建&#xff0c;修改&#xff0c;插入&#xff0c;删除页面元素的标准 Dom赋予我们操作操作页面的能力 页面的内容都是字符串&#xff0c;js会把这些字符串转换成DOM树&#xff0c;DOM树会把字符串转换成节点&#xff0c;其实我们操作DOM的根本就…

CSS布局的三种方式

绝对定位 绝对定位&#xff1a; ​ 属性&#xff1a;position 值&#xff1a;absolute <style> p.abs{position: absolute;left: 150px;top: 50px; }</style><p >正常文字1</p> <p >正常文字2</p> <p class"abs" >绝对定…

Postman常用断言功能解析

一、Postman断言模块 二、七种常规业务断言 前4种最常用&#xff1a; 1&#xff09;Status code:Code is 200 检查返回的状态码是否为200 2&#xff09;Response body:Contains string 检查响应中包括指定字符串 3&#xff09;Response body:Json value check 检查响应中其中js…

C++ Reference: Standard C++ Library reference: Containers: list: list: cbegin

C官网参考链接&#xff1a;https://cplusplus.com/reference/list/list/cbegin/ 公有成员函数 <list> std::list::cbegin const_iterator cbegin() const noexcept; 返回开始的常量迭代器 返回指向容器第一个元素的const_iterator对象。 const_iterator是指向const内容…

不用ps也能在线设计电商详情页的方法

食品类的商品要如何设计排版详情页呢&#xff1f;怎么样排版食品类商品的详情页才好看&#xff1f;想设计一张好看食品的详情页其实是有方法的&#xff0c;下面跟着小编学习如何使用在线工具乔拓云&#xff0c;在线设计一个食品商品的详情页&#xff0c;还有海量的商品详情页模…

mysql索引类别和失效场景

首先&#xff0c;我们为什么要使用索引&#xff0c;索引有什么作用呢&#xff1f; 索引可以用来快速查询数据表中有某一特定值的记录&#xff0c;大大加快数据的查询速度&#xff1b;在列上创建了索引之后&#xff0c;查找数据时可以直接根据该列上的索引找到对应记录行的位置…

经典文献阅读之--PL-SLAM(点线SLAM)

0. 简介 之前作者基本都在围绕着特征点提取的路径在学习&#xff0c;最近看到了最近点云PCL推送的《Structure PLP-SLAM: Efficient Sparse Mapping and Localization using Point, Line and Plane for Monocular, RGB-D and Stereo Cameras》。这个工作是基于OpenVSLAM架构的…