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

Mysql中锁机制深入理解

Mysql中锁机制深入理解

默认大家已经知道。

分类

性能

悲观锁,乐观锁

操作类型

读锁,写锁,

数据粒度

表锁,行锁,页面锁

更细粒度

间隙锁,临键锁

按使用来讲。

由数据粒度出发。

表锁,分为

  • 共享锁,Table Shared Lock;

  • 表独占锁,Table Write Lock;

页面锁,分为

  • 共享锁,Shared Lock;

  • 独占锁,Exclusive Lock;

行锁,分为

  • 共享锁,Shared Lock;

  • 排他锁,Exclusive Lock;

不管怎么样。

都可以分为

  • 共享锁(读锁),大家可以一起读取,但是不能update之类的,可以叫海王。

  • 独占锁(排他),只能我一个人拥有和改变,叫一个人的深情。


下面就是重点了

间隙锁和临键锁(next-key锁)

在我看来,行锁,其实是包括间隙锁和临键锁的。

刚百度了,

其中行锁分为:(行锁)记录锁、间隙锁、next-key锁(行锁+间隙锁)、插入意向锁、隐式锁。

间隙分为区间。

id:
1,2,3,6,7,8,18;

那么区间为,

(3,6), (8,18), (18,+无穷)

有东西出现在这三个空记录区间,就会产生 间隙锁。

详细说明

假设查询id为,[2,9]的记录。

 select*fromuserwhere id>=2and id<=9

情况如下,

2,3 - 有记录,记录锁(普通行锁)。
(3-6) - 区间没有记录,间隙锁。6,7,8 -有记录,记录锁(普通行锁)。
(8,18) -区间没有记录,间隙锁。

所以以上,全部加起来。

间隙锁,是闭区间。左毕右毕,我爬起来本地实验了。

[2,18),就是 行锁+间隙锁=临键锁(next-key)

欢迎探讨!!

记录锁、间隙锁、临键锁小案例演示,你学废了吗

相关文章:

Mysql中锁机制深入理解

Mysql中锁机制深入理解默认大家已经知道。分类性能悲观锁&#xff0c;乐观锁操作类型读锁&#xff0c;写锁&#xff0c;数据粒度表锁&#xff0c;行锁&#xff0c;页面锁更细粒度间隙锁&#xff0c;临键锁按使用来讲。由数据粒度出发。表锁&#xff0c;分为 共享锁&#xff0c;…...

去中心化社交网络协议除了Nostr还有哪些?

当下最火的去中心化社交软件Dmaus就是基于Nostr协议开发的&#xff0c;Nostr协议的基本情况之前的文章《一文了解去中心化社交网络协议Nostr》已经做了详细介绍&#xff0c;本文将介绍其他几个目前比较流行的去中心化社交协议。FarcasterFarcaster是由前Coinbase高管Dan Romero…...

【FT2000/4+X100】调试记录

订阅专栏 硬件环境FT2000/4+X100,单板结构,对外显示,运行银行麒麟操作系统。 一 生成UEFI.BIN,烧写在FT2000-4的QSPI Flash中 1 2 下载源文件 edk2-for-support.tar; 参考文件 ft2004c&D2000编译打包说明V1.0.5; 解压源文件; 根目录下 build2004C.sh为四核产品…...

我的Android启动优化—【黑白屏优化】

简述 在Android App使用过程中&#xff0c;对于应用的优化是一个加分项&#xff0c;举个例子&#xff0c;打开你的App需要2秒&#xff0c;人家0.5秒&#xff0c;这就是很大的用户体验上的优化。 问题的产生 在开发中&#xff0c;我们在启动app的时候&#xff0c;屏幕会出现一…...

TongWeb8编码设置说明

应用场景&#xff1a;在遇到中文问题时&#xff0c;常需要通过设置编码格式来解决问题。下面介绍TongWeb8的编码设置及优先级。一、web.xml中请求、响应编码的配置优先级最高在JavaEE8规范中web.xml增加了request, response编码配置&#xff0c;该配置优先级最高。<?xml ve…...

不同相机之间图片像素对应关系求解(单应性矩阵求解)

一、场景 相机1和相机2相对位置不变&#xff0c;相机拍摄图片有重叠&#xff0c;求他们交叠部分的一一对应关系。数学语言描述为已知相机1图片中P点像素(u1, v1)&#xff0c;相机1中P点在相机2图片中像素值为(u2, v2)&#xff0c;它们存在某种变换&#xff0c;求变换矩阵。 因为…...

远程管理时代,还得是智能化PDU才靠得住!

在如今这个信息技术高速发展的时代&#xff0c;数据中心IDC机房服务器数量与日俱增&#xff0c;提供DNS域名服务、主机托管服务、虚拟主机服务等服务的服务器是IDC最基本的功能之一。服务器需要7*24小时不间断持续工作&#xff0c;但当服务器数量很大&#xff0c;服务器工作、重…...

通俗易懂理解——布隆过滤器

文章目录概述本质优缺点优点&#xff1a;缺点&#xff1a;实际应用解决redis缓存穿透问题&#xff1a;概述 本质 本质&#xff1a;很长的二进制向量&#xff08;数组&#xff09; 主要作用&#xff1a;判断一个数据在这个数组中是否存在&#xff0c;如果不存在为0&#xff0c…...

TypeScript 学习之类型推导

在一些情况下&#xff0c;代码上没有显性明确类型&#xff0c;typescript 可以隐形推断出类型。 基础 let x 3;变量x的类型被推断为数字。 类型推断发生在初始化变量和成员&#xff0c;设置默认参数值和决定函数返回值时 最佳通用类型 let x [0, 1, null]; // 类型为 numb…...

Android四大组件——Service详解

Service 为后台运行&#xff0c;不可见&#xff0c;没有界面。优先级高于Activity&#xff08;内存不足时先杀掉Activity&#xff09;&#xff0c;运行在主线程且不能做耗时操作。 一、Service 启动方式 1、startService() 通过 startService 启动后&#xff0c;service会一直…...

svg转png

svg转png写了一个spring boot项目&#xff0c;支持传入svg文件转出png图片&#xff0c;并且自定义转出png的宽和高。主要代码如下&#xff1a;所需依赖如下&#xff1a;演示如下&#xff1a;首先&#xff0c;运行项目使用接口调用工具调用接口发送请求&#xff0c;提取文件1000…...

教你如何搭建人事OA-员工管理系统,demo可分享

1、简介1.1、案例简介本文将介绍&#xff0c;如何搭建人事OA-员工管理。1.2、应用场景人事OA-员工管理应用对员工信息进行管理&#xff0c;可办理入职、转正、离职等流程。2、设置方法2.1、表单搭建1&#xff09;新建表单【员工管理】&#xff0c;字段设置如下&#xff1a;名称…...

C++递推基础知识

文章目录一、递推的概念二、递推和递归的区别三、递推的实例1、最基础的&#xff1a;斐波那契数列2、变形版斐波那契数列3、较复杂的递推式求解&#xff1a;昆虫繁殖4、经典逆推问题&#xff1a;题目数量一、递推的概念 1、什么是递推算法&#xff1f; 递推算法&#xff1a;是…...

【Python入门第十天】Python 布尔

布尔表示两值之一&#xff1a;True 或 False。 布尔值 在编程中&#xff0c;通常需要知道表达式是 True 还是 False。 可以计算 Python 中的任何表达式&#xff0c;并获得两个答案之一&#xff0c;即 True 或 False。 比较两个值时&#xff0c;将对表达式求值&#xff0c;P…...

WebDAV之π-Disk派盘+Piktures

Piktures支持WebDAV方式连接π-Disk派盘。推荐一款简单易用&#xff0c;功能超级强大的智能相册应用。Piktures智能相册是一款简单易用&#xff0c;功能超级强大的智能相册应用&#xff0c;它不仅可以访问本地和云照片&#xff0c;还可以照片编辑器&#xff0c;而且它同时还是一…...

Revit问题:Navisworks中导入的rvt模型角度不正确调整

一、Navisworks中导入的rvt模型角度不正确调整方法 通常情况下&#xff0c;我们做好一个Revit模型&#xff0c;有时候出于成果保护或者鉴于Revit自带的碰撞检测效果不够直观、Revit模型体量太大&#xff0c;需要一个轻量化的模型展示&#xff0c;我们通常情况下会使用Autodesk公…...

最全正则验证

一、校验数字的表达式 1. 数字&#xff1a;^[0-9]*$ 2. n位的数字&#xff1a;^\d{n}$ 3. 至少n位的数字&#xff1a;^\d{n,}$ 4. m-n位的数字&#xff1a;^\d{m,n}$ 5. 零和非零开头的数字&#xff1a;^(0|[1-9][0-9]*)$ 6. 非零开头的最多带两位小数的数字&#xff1a;…...

阿里云服务器入门使用流程 新手学习教程

一、阿里云根据个人需要选合适的云服务器&#xff0c;选好cpu、内存、带宽&#xff0c;地域&#xff0c;这四个是主要的。其他可以默认选择。 二、登陆控制台 输入账号密码&#xff0c;进去看到服务界面&#xff0c;新手可能不容易看懂。点击左侧菜单&#xff0c;点击云服务器…...

git学习

一.实际场景 数据备份代码还原协同开发追溯问题代码的编写人和编写时间 二.Git工作流程图 三.获取本地仓库 四.git add和git commit git status&#xff1a;查看修改的状态&#xff08;暂存区&#xff0c;工作区&#xff09; git add . &#xff1a;通配符&#xff0c;添加当…...

新建一个完整的react项目和完善初始项目

一&#xff1a;新建一个完整的react项目 1.环境准备 目前我的环境是 node&#xff1a;16.17.1 npm&#xff1a; 8.15.0 查看环境&#xff1a;1)&#xff1a;打开命令提示符工具&#xff0c;利用node -v和npm -v 查看一下自己的环境&#xff0c;如果觉得重新卸载、安装node比较…...

Error response from daemon: client version 1.52 is too new. Maximum supported API version is 1.43

按照习惯&#xff0c;输入“docker ps”查看一下容器&#xff0c;结果给我来个这个错误&#xff1a;Error response from daemon: client version 1.52 is too new. Maximum supported API version is 1.43查了一下原因&#xff1a;这是因为使用云构建安装的默认 Docker 守护程…...

AI推理延迟超标?资源利用率不足35%?SITS2026动态编排引擎实测压测报告:单节点吞吐提升4.8倍,,附YAML配置模板

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;AI原生应用部署方案&#xff1a;SITS2026 SITS2026&#xff08;Scalable Intelligent Training & Serving 2026&#xff09;是一套面向生产环境的AI原生应用部署框架&#xff0c;专为大模型微服务…...

简单学习 --> SpringAOP

spring 两大核心: ioc 和 aop ; (ioc : 控制反转 , aop : 面相切面编程)AOPAOP: 面向切面编程 , 可以看作是面向对象编程的补充 ;aop是一种思想,是对某一类事情的集中处理 (例如: 统一功能处理(拦截器,统一结果,统一异常) , 统一功能处理事AOP 的实现 )切面: 某一类公共的事情 …...

RT-Thread开发实战(8)— 基于SPI驱动TFTLCD实现动态数据可视化

1. 从零开始玩转SPI驱动TFTLCD 第一次用RT-Thread驱动TFTLCD屏幕时&#xff0c;我盯着那堆密密麻麻的引脚直发懵。后来才发现&#xff0c;只要搞明白SPI通信和屏幕驱动芯片的关系&#xff0c;这事儿其实比想象中简单多了。我们这次要对付的是ST7789V2这款驱动芯片&#xff0c;它…...

GLM-ASR开源语音识别引擎:基于GLM架构的端到端实践指南

1. 项目概述&#xff1a;一个开源的、基于GLM架构的语音识别引擎最近在语音识别&#xff08;ASR&#xff09;这个圈子里&#xff0c;一个名为“GLM-ASR”的开源项目引起了我的注意。它来自zai-org组织&#xff0c;顾名思义&#xff0c;其核心是将自然语言处理领域大放异彩的GLM…...

Claude Code API封装库:Python调用与实战应用指南

1. 项目概述与核心价值最近在折腾AI编程助手的时候&#xff0c;发现了一个挺有意思的项目&#xff0c;叫lyzcodebool/claude-code-api。简单来说&#xff0c;这是一个为Claude Code&#xff08;Anthropic推出的代码生成模型&#xff09;设计的非官方API封装库。如果你用过OpenA…...

RPC的了解

文章目录1. RPC的概述2. RPC的核心工作原理3. RPC与 HTTP 的区别4. RPC 框架的核心功能5. 常见的RPC框架对比6. 什么时候考虑引入RPC7. 选型8. Dubbo1&#xff09;概述2. Dubbo核心功能3. Dubbo 具体使用1. RPC的概述 RPC&#xff08;Remote Procedure Call&#xff0c;远程过程…...

Weaviate向量数据库实战:从官方示例到RAG应用开发全解析

1. 项目概述&#xff1a;从代码仓库到向量数据库的实战指南如果你最近在关注大语言模型应用开发&#xff0c;或者想给自己的应用加上一个“记忆大脑”&#xff0c;那你大概率已经听说过向量数据库了。在众多选型中&#xff0c;Weaviate以其开源、易用和强大的功能脱颖而出。但当…...

Flutter中如何显示异步数据

在开发Flutter应用时,处理异步操作是非常常见的任务之一。许多时候,我们需要将异步操作的结果展示在用户界面上,比如从服务器获取数据或执行一些耗时的计算。本文将通过一个具体的实例,展示如何在Flutter中使用FutureBuilder来处理和显示异步数据。 问题背景 假设我们有一…...

JetBrains IDE重置插件:终极免费解决方案告别30天试用期限制

JetBrains IDE重置插件&#xff1a;终极免费解决方案告别30天试用期限制 【免费下载链接】ide-eval-resetter 项目地址: https://gitcode.com/gh_mirrors/id/ide-eval-resetter 你是否曾经在项目开发的关键时刻&#xff0c;突然被JetBrains IDE弹出的"试用期已到期…...