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

【多版本并发控制(MVCC)】

并发事务问题:

在这里插入图片描述

MySQL隔离级别-未提交读,提交读,可重复读,序列化

隔离级别对于并发事务的解决情况

隔离级别脏读不可重复读幻读
未提交读不可不可不可
读已提交不可不可
可重复读 (默认)不可
串行化(性能低)

默认隔离级别:可重复读

日志类型

undo log:
逻辑日志,事务回滚时,通过逆操作恢复到原来的数据。(保证了原子性和一致性)

在这里插入图片描述

redo log:
记录数据页的物理变化,服务宕机时恢复数据 (保证了持久性)
在这里插入图片描述

MVCC(多版本并发控制)

具体实现方式: 数据隐藏字段、undo log、readView

数据库每条记录中包含三个隐藏字段,如下:

字段名称描述
DB_TRX_ID最近修改事务ID,记录插入这条记录或最后一次修改该记录的事务ID
DB ROLL_PTR回滚指针,指向这条记录的上一个版本,用于配合undo log,指向上一个版本。
DB_ROW_ID隐藏主键,如果表结构没有指定主键,将会生成该隐藏字段。

实例如下:
在这里插入图片描述

undo log 版本链:

在这里插入图片描述

ReadView、当前读、快照读之间的区别

  • ReadView

ReadView(读视图)是快照读SQL执行时MVCC提取数据的依据,记录并维护系统当前活跃的事务(未提交的)id。

  • 当前读

读取的是记录的最新版本,读取时还要保证其他并发事务不能修改当当前记录,会对读取的记录进行加锁。对于我们日常的操作
如:select … lock in share mode(共享锁),select …for update,upodate,insert,delete(排他锁)都是一种当前读

  • 快照读

简单的select(不加锁)就是快照读,快照读,读取的是记录数据的可见版本,有可能是历史数据,不加锁,是非阻塞读。
Read Committed:每次select,都生成一个快照读。
Repeatable Read:开启事务后第一个select语句才是快照读的地方5,

readView的数据结构:

在这里插入图片描述

版本链数据访问规则如下:

在这里插入图片描述

在这里插入图片描述
实例如下:

在这里插入图片描述
特别说明:
在RR级别下,连续多次快照读,ReadView会产生复用,没有幻读问题。
特例:当两次快照读之间存在当前读,ReadView会重新生成,导致产生幻读

相关文章:

【多版本并发控制(MVCC)】

并发事务问题: MySQL隔离级别-未提交读,提交读,可重复读,序列化 隔离级别对于并发事务的解决情况 隔离级别脏读不可重复读幻读未提交读不可不可不可读已提交可不可不可可重复读 (默认)可可不可串行化&…...

常见漏洞及webshell工具的流量特征

常见攻击的流量特征 信息泄露 请求/路径中,包含 特殊文件 或 路径;响应包中,包含敏感信息(如,数据结构,用户信息,网络结构等) 弱口令爆破 非常规流量:短时间内大量数据…...

python学习-怎么在Pycharm写代码

打开Pycharm,点击文件-新建项目 2.选择pure python-点击箭头 展开 3.选择 Existing interpreter 如果 Existing interpreter 下没有相关环境 (1)点击**…** (2)选择python的安装路径 4.可修改文件名称-点击创建 …...

牛客周赛63(C++实现)

🌈个人主页:Yui_ 🌈Linux专栏:Linux 🌈C语言笔记专栏:C语言笔记 🌈数据结构专栏:数据结构 🌈C专栏:C 文章目录 1.小红的好数1.1 题目描述1.2 思路1.3 代码 2.…...

高级英语1第四版教材全解pdf课后答案+课文翻译张汉熙

《高级英语1》是张汉熙教授编著的一本英语教材,广泛用于国内高校英语专业高年级学生的教学。这本书以提高学生的英语综合能力为目标,注重语言知识的系统性和实用性,同时强调跨文化交际能力的培养。书中选材丰富,涵盖了文学、历史、…...

视频去水印软件3款推荐:好用的去水印软件分享!

在处理视频素材时,水印往往是一个令人头疼的问题。幸运的是,市面上有许多优秀的视频编辑软件能够帮助我们快速、有效地去除水印。今天,我将为大家推荐三款功能强大的视频去水印软件:影忆、Final Cut Pro X以及Adobe Premiere Pro&…...

perl文件测试操作符及其意义

perl文件测试操作符及其意义 文件测试操作符意义-r文件或目录,对目前(有效的)用户或组来说是可读的-w文件或目录,对目前(有效的)用户或组来说是可写的-x文件或目录,对目前(有效的&a…...

NC 单据模板自定义项 设置参照(自定义参照)

NC 单据模板自定义项 设置参照(自定义参照) 如图下图,NC 单据模板自定义项 设置参照: 1、选择需要设置参照的自定义字段,选择高级属性页签,在类型设置中,数据类型选择参照信息,即bd…...

Element-ui官方示例(Popover 弹出框)

Element-ui官方示例(Popover 弹出框),好用的弹出框。 使用 vue-cli3 我们为新版的 vue-cli 准备了相应的​Element 插件​,你可以用它们快速地搭建一个基于 Element 的项目。 使用 Starter Kit 我们提供了通用的项目模版&#…...

Bootstrap 5 练习 - 显示工具提示

文章目录 引言准备工作创建HTML文件导入Bootstrap 5框架编写页面代码编写JavaScript脚本浏览网页注意事项结束语 引言 大家好,今天我们将一起学习如何在Bootstrap 5中创建一个简单的工具提示(Tooltip)。工具提示是一个非常实用的用户界面元素…...

【p2p、分布式,区块链笔记 Torrent】: WebTorrent GitTorrent bittorrent-dht

bittorrent-dht模块 BitTorrent DHT 通过 DHT 网络广播值,允许其他用户通过 DHT 来发现和获取这些数据。 1. 导入依赖 var DHT require(bittorrent-dht)2. 创建实例 var dht new DHT({bootstrap: config.dht.bootstrap }) dht.listen(config.dht.listen)new D…...

【Next.js 项目实战系列】05-删除 Issue

原文链接 CSDN 的排版/样式可能有问题,去我的博客查看原文系列吧,觉得有用的话,给我的库点个star,关注一下吧 上一篇【Next.js 项目实战系列】04-修改 Issue 删除 Issue 添加删除 Button​ 本节代码链接 这里我们主要关注布局…...

Springboot api http并发测试请求

pom.xml <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId> </dependency> 线程发起请求 package com.example.demo;import org.springframework.http.HttpEntity; import org…...

Qt的websocket客户端和服务器测试(非安全版本)

测试内容&#xff1a; 客户端&#xff1a; 1 连接服务器 2 发送数据 3 处理错误信号 4 监听断开信号 5 接收服务器的数据 服务器&#xff1a; 1 监听等待客户端连接 2 向指定的客户端发送数据 4 监听断开信号 5 接收客户端的数据 测试界面 工程文件.pro添加的内容&#xff1a;…...

Prometheus运维监控平台之监控指标注册到consul脚本开发、自定义监控项采集配置调试(三)

系列文章目录 运维监控平台搭建 运维监控平台监控标签 golang_Consul代码实现Prometheus监控目标的注册以及动态发现与配置V1版本 文章目录 系列文章目录目的一、监控指标注册到consul的golang脚本开发1、修改settings.yaml文件2、修改config/ocnsul,go文件3、修改core/consul…...

C语言——数组

1.数组的概念 数组是一组相同类型元素的集合&#xff1b; 数组中可以存放1个或多个元素&#xff0c;但数组元素个数不能为0。 同时数组可以分为一维数组和多维数组&#xff0c;多维数组一般常见 是二维数组。 2.一维数组的创建和初始化 一维数组的创建的基本语法&#xff1a; …...

MySQL-09.DDL-表结构操作-查询修改删除

一.查询 二.修改 三.删除 -- DDL&#xff1a;查看表结构 -- 查看&#xff1a;当前数据库下的表show tables ;-- 查看&#xff1a;查看指定的表结构 desc tb_emp;-- 查看&#xff1a;数据库的建表语句 show create table tb_emp;-- DDL:修改表结构 -- 修改&#xff1a;为表tb…...

WileyNJDv5_Template模板无法编译生成pdf文件

文章目录 问题解决办法结果 问题 使用WileyNJDv5_Template模板时&#xff0c;修改tex文件里的内容&#xff0c;按F6编译后&#xff0c;并没有报错&#xff0c;但是编辑后的pdf文件没有生成&#xff0c;因为看文件夹里的pdf文件日期还是以前的日期&#xff0c;所以是旧版的pdf文…...

亿配芯城(ICGOODFIND)教你外贸(海外)推广电子元器件芯片的专用词语

在电子元器件行业&#xff0c;海外推广是企业拓展市场、提升竞争力的重要手段。而在海外推广过程中&#xff0c;恰当运用专用词语能够准确传达产品信息、吸引客户关注&#xff0c;提升推广效果。本文将详细介绍亿配芯城&#xff08;ICGOODFIND&#xff09;电子元器件海外推广中…...

windows和linux的一些使用问题一一记录

文章目录 windows 11 激活wsl文件共享命令互通wslg网络 Hyper-V双系统遇到再记录……… windows 11 激活 然后执行 slmgr /skms kms.03k.org slmgr /atowsl 卡死打开任务管理关闭下就行了 wsl --list -v # 安装的 wsl --list --online #可以安装的wsl -d kali-linux # 启…...

数字孪生+AI:某国家级技术科研机构:耦合仿真评估部件性能,长期运维监测承压状态

部件仿真&#xff5c;设备安全&#xff5c;能源装备&#xff5c;风险评估 某国家级技术科研机构长期服务于国家级重点工程与大型产业体系&#xff0c;在复杂系统运行保障、风险评估与技术支撑等方面承担着关键角色。其业务覆盖多类型基础设施与工程场景&#xff0c;具备完善的…...

Ostrakon-VL零售AI降本方案:替代人工巡检,单店年省8万元

Ostrakon-VL零售AI降本方案&#xff1a;替代人工巡检&#xff0c;单店年省8万元 1. 零售巡检的痛点与AI解决方案 在传统零售运营中&#xff0c;门店巡检是一项耗时耗力的日常工作。店长或督导人员需要每天检查&#xff1a; 商品陈列是否整齐货架缺货情况价签是否正确店铺环境…...

嵌入式开发必备:三大代码对比工具深度评测

1. 代码对比工具概述作为一名嵌入式开发工程师&#xff0c;我每天都要处理大量的代码修改和版本对比工作。在多年的开发实践中&#xff0c;我发现选择合适的代码对比工具能极大提升工作效率。虽然Beyond Compare是业内公认的标杆产品&#xff0c;但实际工作中我们还有更多选择&…...

从NTLM中继到域控接管:ADCS-ESC8漏洞实战解析

1. ADCS-ESC8漏洞概述 ADCS-ESC8是Active Directory证书服务(AD CS)中的一个高危漏洞&#xff0c;它允许攻击者通过NTLM中继攻击获取域控制器证书。这个漏洞的核心在于ADCS默认配置中的Web证书注册页面仅使用HTTP协议且支持NTLM认证&#xff0c;但未启用任何中继攻击防护措施。…...

终极Cinder着色器编程指南:7个GLSL视觉效果开发技巧

终极Cinder着色器编程指南&#xff1a;7个GLSL视觉效果开发技巧 【免费下载链接】Cinder Cinder is a community-developed, free and open source library for professional-quality creative coding in C. 项目地址: https://gitcode.com/gh_mirrors/ci/Cinder Cinder…...

Phi-4-mini-reasoning效果展示:含单位换算、科学计数法的复合型数学题求解

Phi-4-mini-reasoning效果展示&#xff1a;含单位换算、科学计数法的复合型数学题求解 1. 模型能力概览 Phi-4-mini-reasoning是一款专注于推理任务的文本生成模型&#xff0c;特别擅长处理需要多步逻辑推导的问题。与通用聊天模型不同&#xff0c;它更专注于"问题输入→…...

终极窗口置顶指南:如何让重要窗口永远不被遮挡

终极窗口置顶指南&#xff1a;如何让重要窗口永远不被遮挡 【免费下载链接】AlwaysOnTop Make a Windows application always run on top 项目地址: https://gitcode.com/gh_mirrors/al/AlwaysOnTop AlwaysOnTop 是一个轻量级的 Windows 应用程序&#xff0c;它能够将任…...

从CNN到Mamba:为什么这个轻量级双分支结构在医学图像分类中表现更好?

从CNN到Mamba&#xff1a;轻量级双分支结构如何重塑医学图像分类范式 医学影像分析正面临前所未有的挑战——随着CT、MRI、超声等成像技术的普及&#xff0c;每天产生的医学图像数据呈指数级增长。传统CNN架构在应对高分辨率医学图像时&#xff0c;往往陷入局部特征提取的局限&…...

保姆级避坑指南:在Ubuntu 22.04上用ROS2 Humble搞定TurtleBot3的SLAM与导航(附5个常见报错解决方案)

保姆级避坑指南&#xff1a;在Ubuntu 22.04上用ROS2 Humble搞定TurtleBot3的SLAM与导航&#xff08;附5个常见报错解决方案&#xff09; 当你第一次尝试在Ubuntu 22.04上使用ROS2 Humble和TurtleBot3进行SLAM建图与导航时&#xff0c;可能会遇到各种令人沮丧的报错。这些报错往…...

深度解析ImageToSTL:从二维图像到三维打印模型的技术实现

深度解析ImageToSTL&#xff1a;从二维图像到三维打印模型的技术实现 【免费下载链接】ImageToSTL This tool allows you to easily convert any image into a 3D print-ready STL model. The surface of the model will display the image when illuminated from the left sid…...