MySQL锁相关总结|悲观锁、乐观锁、读锁、写锁、表锁、行锁、页面锁、间隙锁、临键锁

MySQL锁总体结构

在这里插入图片描述

MySQL 的锁上可以分成三类:总体、类型、粒度。

  1. 总体上分成两种:乐观锁和悲观锁
  2. 类型上也是两种:读锁和写锁
  3. 锁的粒度上可以分成五种:表锁,行锁,页面锁,间隙锁,临键锁

下面我们就来详细讲一下这些锁

1. 悲观锁

悲观锁对于数据库中数据的读写持悲观态度,即在整个数据处理的过程中,他会悲观认为数据不会保持一致性,所以是会将相应的数据锁定。在数据库中,悲观锁的实现是依赖数据库提供的锁机制。

如果加上了悲观锁,那么就无法对这些数据进行读取操作。

2. 乐观锁

乐观锁对于数据库的数据的读写持乐观态度,即在整个数据处理的过程中,他会很乐观的认为数据会保持一致性,所以不加锁,而是通过数据版本记录机制实现。

MySQL中的MVCC多版本控制就是乐观锁的一种实现方式。

  1. 往往会在数据表中增加一个类型version的版本号字段。
  2. 在查询数据库中的数据时,会将版本号字段的值一起读取出来。
  3. 当更新数据时,会令版本号字段的值加1。将提交数据的版本与数据库表对应记录的版本进行对比。
  4. 如果提交的数据版本号大于数据表中当前要修改的数据的版本号,则数据进行修改操作。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里同学聊测试开发与测试平台

在一线大厂,没有测试这个岗位,只有测开这个岗位,即使是做业务测试,那么你的title也是测开。 所以想聊一聊测开的看法,但不代表这是正确的看法,仅供参考。 没来阿里之前我对测开的看法 一直以为专职做自动…

信钰证券:特斯拉掉队,英伟达冲锋!

截至当地时间2月16日收盘,美股三大指数上周累跌,结束五周连涨。其中,道指累计下跌0.11%,标普500指数周内跌幅为0.42%,以科技股为主的纳指则累跌1.34%。美股“科技七巨头”上周多数累跌,谷歌跌超5%&#xff…

【Node.js】介绍、下载及安装

一、什么是 Node.js Node.js 是一个独立的 JavaScript 运行环境,能独立执行 JS 代码,因为这个特点,它可以用来编写服务器后端的应用程序 前端工程化:开发项目直到上线,过程中集成的所有工具和技术 Node.js 是前端工程…

基于python-socket构建任务服务器(基于socket发送指令创建、停止任务)

在实现ia业务服务器时需要构建一个python-socket客户端,1、要求能与服务器保持心跳连接,每10秒钟发送一次心跳信号;2、要求能根据socket服务器发送的指令创建或终止一个定时任务。 为此以3个类实现该功能,分别为socket通信类&…

ONLYOFFICE编辑器升级大揭秘:v8.0版新特性实测与评价

ONLYOFFICE编辑器升级大揭秘:v8.0版新特性实测与评价 一个人简介二前言三操作步骤创建房间我的文档 四开发人员工具应用程序接口Javascript开发工具包插件SDK网络钩子 五测评总结六体验地址 一个人简介 🏘️🏘️个人主页:以山河作…

阿里云OSS对象存储使用教程

一.OSS介绍 阿里云对象存储 OSS(Object Storage Service)是一款海量、安全、低成本、高可靠的云存储服务,提供最高可达 99.995 % 的服务可用性。多种存储类型供选择,全面优化存储成本。 官网地址:https://www.aliyun.com/product/…

【Unity】双击C#脚本文件以单个文件打开(Visual Studio)、父类找不到、引用找不到、无法跳转等问题

问题:新安装一个Unity后,突然发现在工程里双击C#脚本,会一个一个打开,虽然也是用VS软件打开了,但是它无法被正确识别为Unity工程的C#脚本,也就是说所有命名空间无效,因为没关联上整个工程的解决…

STM32使用软件SPI协议操作TFT18彩屏

时间记录:2024/2/20 一、SPI协议介绍 (1)SPI设备通过4根线进行通信,CS片选线,选择从设备,SCK时钟线,由主设备产生时钟,主机MOSI线连从机MISO线,由主机向从机发送信息&am…

单片机03--按键--寄存器版

GPIO端口相关寄存器(STM32F40x芯片) 目标: 开关KEY1控制开灯。 分析: KEY1---PA0--->输入---->浮空输入/下拉输入 KEY1不导通时,PA0输入为低电平,KEY1导通时,PA0输入为高电平。 实现…

vitis安装及遇到的问题

ubuntu不能上网安装不了 我开始遇到:win 和 ubuntu可以互ping, 但是无法上网 1. 试一下:这里改成禁用 disable 2. 试一下这个 ping 8.8.8.8和ping www.baidu.com都OK,但是打不开网页-CSDN博客 安装过程: 安装文件:F…

C++从入门到精通 第十四章(STL容器)【下】

写在前面: 本系列专栏主要介绍C的相关知识,思路以下面的参考链接教程为主,大部分笔记也出自该教程,笔者的原创部分主要在示例代码的注释部分。除了参考下面的链接教程以外,笔者还参考了其它的一些C教材(比…

大数据信用报告查询方式一般有几种?哪种比较好?

在了解这个问题之前,想必你对大数据信用与人行信用的区别都是比较清楚了,本文呢就着重讲一下大数据信用报告查询方式有几种,哪种比较好,感兴趣的朋友不妨一起去看看。 大数据信用报告常见的三种查询方式: 一、二维码分…

SSH连接密码问题:原因、表现与解决方案

SSH连接密码问题:原因、表现与解决方案 写在最前面1. 密码错误2. SSH服务配置问题3. 账户锁定或禁用4. 密钥认证问题5. SSH版本不兼容6. 服务器负载或连接数过多7. IP地址被限制 小结 写在最前面 SSH(Secure Shell)是一种网络协议&#xff0…

Flutter学习4 - Dart数据类型

1、基本数据类型 num、int、double (1)常用数据类型 num类型,是数字类型的父类型,有两个子类 int 和 double 通过在函数名前加下划线,可以将函数变成私有函数,私有函数只能在当前文件中调用 //常用数据…

C++ bfs 的状态表示(六十二)【第九篇】

今天我们来学习一下bfs的复杂状态表示 1.bfs状态表示 无论是深度优先搜索还是广度优先搜索,搜索的过程均会建立一棵 搜索树,搜索树上的每一个结点都是一个 状态,而搜索的过程又可以看作是 状态的转移。 对于 BFS,搜索过程中产生…

力扣 309. 买卖股票的最佳时机含冷冻期

题目来源:https://leetcode.cn/problems/best-time-to-buy-and-sell-stock-with-cooldown/description/ C题解:动态规划 状态1:表示持有股票。更新为之前持有股票(dp[i-1][0])或者不持有股票且不处于冷冻期后买入&…

【网络安全】漏洞挖掘入门教程(非常详细),小白是如何挖漏洞(技巧篇)从零基础入门到精通!

温馨提示: 初学者最好不要上手就去搞漏洞挖掘,因为漏洞挖掘需要很多的系统基础知识和一些理论知识做铺垫,而且难度较大…… 较合理的途径应该从漏洞利用入手,不妨分析一些公开的CVE漏洞。很多漏洞都有比较好的资料,分…

Windows Server 2012 安装

1.镜像安装 镜像安装:Windows Server 2012 2.安装过程(直接以图的形式呈现) 2012激活秘钥:J7TJK-NQPGQ-Q7VRH-G3B93-2WCQD

利用RBI(Remote Browser Isolation)技术访问ChatGPT

系统组网图 #mermaid-svg-Bza2puvd8MudMbqR {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-Bza2puvd8MudMbqR .error-icon{fill:#552222;}#mermaid-svg-Bza2puvd8MudMbqR .error-text{fill:#552222;stroke:#552222;…

VMware ESXi 8.0的安装、配置、使用

VMware ESXi 8.0的安装、配置、使用 ESXi的安装与配置下载镜像安装网络配置 Web控制台的管理操作激活开启直通网络配置修改电源模式创建虚拟机 其他ESXI秘钥克隆虚拟机 ESXi的安装与配置 下载镜像 官网:https://www.vmware.com/ 文档:https://docs.vm…