幻读和不可重复读的区别

MySQL专题: 脏读、不可重复读、幻读区别 目录 脏读(Dirty Read) 不可重复读 幻读 脏读(Dirty Read) 读取到了未提交的数据(如果事务这时候回滚了,那么第二个事务就读到了脏数据) 原因可能有: (1)有一个交叉的事务有新的commit,导致了数据的改变; (2)一个数据库被多个实例操作时,同一事务的其他实例在该实例处理其间可能会有新的commit。 不可重复读 同一个事务中执行完全相同的select语句时可能看到不一样的结果。 幻读 当用户读取某一范围的数据行... 阅读详情

不可重复读

不可重复读的重点是修改:

同样的条件, 你读取过的数据, 再次读取出来发现值不一样了

例子:

在事务1中,Mary 读取了自己的工资为1000,操作并没有完成 

Java代码  收藏代码
  1. con1 = getConnection();  
  2. select salary from employee empId ="Mary";  


在事务2中,这时财务人员修改了Mary的工资为2000,并提交了事务. 
Java代码  收藏代码
  1. con2 = getConnection();  
  2. update employee set salary = 2000;  
  3. con2.commit();  


在事务1中,Mary 再次读取自己的工资时,工资变为了2000 
Java代码  收藏代码
  1. //con1  
  2. select salary from employee empId ="Mary";  


在一个事务中前后两次读取的结果并不致,导致了不可重复读。


幻读

幻读的重点在于新增或者删除

同样的条件, 第1次和第2次读出来的记录数不一样

例子:

目前工资为1000的员工有10人。 
事务1,读取所有工资为1000的员工。 

Java代码  收藏代码
  1. con1 = getConnection();  
  2. Select * from employee where salary =1000;  
共读取10条记录 

这时另一个事务向employee表插入了一条员工记录,工资也为1000 
Java代码  收藏代码
  1. con2 = getConnection();  
  2. Insert into employee(empId,salary) values("Lili",1000);  
  3. con2.commit();  


事务1再次读取所有工资为1000的员工 
Java代码  收藏代码
  1. //con1  
  2. select * from employee where salary =1000;  

共读取到了11条记录,这就产生了幻像读。 

o型圈沟槽设计_O型密封圈——详细选型过程及步骤 一、密封圈常用材料二、密封圈常用密封形式密封圈分为活塞密封,活塞杆密封,端面密封,旋转密封。三、O型密封圈的选型规则O型密封圈的尺寸图径向安装O型圈选型(静态和动态运动)活塞杆密封选择适当规格的O形圈时,应该保证其外径(d1+2*d2)至少等于或者大于沟槽外径d6;当选择的O形圈直径d1大于250 mm时, O形圈外径将不能超过沟槽外径的3%;当选择的O形圈直径d1小于250mm时, O形圈外径将... 阅读详情

相关推荐

mipi协议中的calibration和scramble模式

在MIPI(Mobile Industry Processor Interface)协议中,calibration(校准)和scramble(加扰)模式是两个重要的特性,它们分别用于优化数据传输的准确性和减少信号干扰。

flomingo1的专栏 2397

快速理解脏读、不可重复读和幻读

MySQL的InnoDB引擎是支持事务的,但是并发事务的处理又会带来以下问题: 脏读 不可重复度 幻读 一、脏读 脏读指事务A读取到了事务B更新了但是未提交的数据,然后事务B由于某种错误发生回滚,那么事务A读取到的就是脏数据。 具体的说,一个数据原本是干净的,但是事务B将它进行修改使得其不再干净,此时事务A读取到事务B修改后的数据,也就是脏数据,称为脏读,后来事务B由于良心发现又将数据回滚为最初的样子,而事务A不知道事务B进行了回滚操作,最终事务A读取到的是脏数据,称为脏读。 结论:读取未提交的数据!

郑皓云的博客 8586

VTK基础教程(1)- vtkPolyData 介绍

目录 VTK的编译与环境搭建 VTK一般渲染流程 VTK数据类型-vtkPolyData 使用vtk自带的多边形数据 使用自己创建的数据 添加顶点颜色 添加面颜色 VTK的编译与环境搭建 这部分目前已经有了大佬做了成熟的傻瓜式配置,大家可以参考这篇文章:VTK+VS2019(或其他版本均可) 傻瓜式一站式 配置_Nancy_fairy的博客-优快云博客_vs2019 vtk VTK一般渲染流程 这部分的介绍也很多,大家可以参考这篇文章:VTK笔记-了解VTK_黑山老妖的博客.

qq_35769071的博客 9054

看了那么多文章,终于弄懂了脏读、不可重复度、幻读

不可重复度:一个事物先后两次读取同一条数据,但是两次结果不同。幻读:一个事务按照条件查询数据时,没有对应的数据行,但是在插入数据时,又发现这行数据 已经存在,好像出现了 “幻影”。

qq_46111881的博客 781

hcaptcha-challenger:基于本地AI模型自动破解验证码的工程实践

验证码作为区分人类与机器的经典安全机制,其核心原理是通过图像识别、行为分析等交互式挑战来阻挡自动化程序。传统绕过方法依赖第三方打码平台或脚本,存在成本高、稳定性差的问题。随着多模态大语言模型和计算机视觉技术的发展,本地化AI求解成为新的技术方向,它通过集成YOLO、ResNet等模型,在本地完成图像语义理解,实现了高隐私、低成本、可进化的验证码自动化解决方案。这种范式尤其适用于需要大规模稳定处理网页交互的场景,如电商数据采集和社交媒体管理。hcaptcha-challenger项目正是这一理念的工程实践,它

weixin_42587866的博客 1025

SARScape实战:集成GACOS数据优化InSAR大气校正全流程

本文详细介绍了如何在SARScape软件中集成GACOS数据,以优化InSAR大气校正的全流程。通过实战步骤,从GACOS数据申请、下载、导入,到在单景干涉图和SBAS-InSAR流程中应用,有效剥离大气相位延迟,显著提升形变监测结果的精度与可靠性,实现从“雾里看花”到“拨云见日”的转变。

weixin_28419039的博客 397

脏读幻读和不可重复读 数据库锁 隔离机制

一、脏读、不可重复读、幻读1、脏读:脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。 例如: 张三的工资为5000,事务A中把他的工资改为8000,但事务A尚未提交。 与此同时, 事务B正在读取张三的工资,读取到张三的工资为8000。 随后, 事务A发生异常,而回滚了事务。张三的工资又回滚为5000。 最后, 事务B读取到的张三工资为8000的数据即为脏数据,事务B做了一次脏读。2、不可重复读:是指在一个事务内,多

song854601134的博客 6万+

基于STM32 FOC下桥三电阻采样方式的电机相电流重构方法

如何提高三电阻采样的调制率

wanrenqi的博客 9191

MySQL如何解决幻读和不可重复度?

如何解决幻读和不可重复读?

三横同学的博客 2026

PGM-Explainer实验总结

PGM-Explainer建立了一个概率图模型,为GNN提供实例级解释。 论文标题:PGM-Explainer: Probabilistic Graphical Model Explanations for Graph Neural Networks 论文地址:2010.05788.pdf (arxiv.org) PGM-Explainer实验 实验目的 研究PGM-Explainer的有效性 实验方案 合成数据集的节点分类 与其他解释器做对比实验 使用六个合成数据集。 每个输入图都是一个

笔记|思路|总结 1万+

【云原生技术】K8s 在拉取镜像时报错tls: failed to verify certificate: x509: certificate signed by unknown authority

原因 Kubernetes 节点在拉取镜像时会对 Harbor 的 HTTPS 证书做严格校验; 日志里的核心报错是: ``` tls: failed to verify certificate: x509: certificate signed by unknown authority ``` 说明 Harbor 返回的服务器证书要么是自签发,要么缺少在系统信任链里的根/中级 CA,节点因此拒绝连接。 你需要让 **所有负责拉镜像的节点(containerd 或 Docker 守护进程)

weixin_46453070的博客 2871

数据库事务和隔离级别(重点,不可重复读和可重复度的区别)

数据库事务的四个特性(ACID)1 、原子性 (Atomicity) 事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 2 、一致性 (Consistency) 事务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数

RipL的专栏 1万+

OpenClaw 开机自启配置:Windows/macOS/Linux 全平台技术指南

OpenClaw 开机自启全平台配置指南 本文提供了在Windows、macOS和Linux系统上配置OpenClaw开机自启的完整技术方案。主要内容包括: Windows配置:提供三种方法(Windows服务、任务计划程序、启动文件夹),详细说明服务脚本创建、服务注册和测试流程 macOS配置:使用LaunchAgent实现开机自启,包含配置文件创建和加载方法 Linux配置:通过systemd服务实现,包括服务单元文件创建和启用步骤 系统要求:明确硬件(64位CPU/4GB内存)和软件(各平台操作系统版

一键难忘的博客 2993

不可重复读和幻读有什么区别

也不是啥难题,但是上周确确实实有两个简历上八年经验的人没答出来(这两个八年经验的小伙伴,一个是资深一个是高级)。不过松哥的读者藏龙卧虎,相信在座的各位回答这道题没什么压力。

fefdfg的博客 2438

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

事物级别,不可重复读和幻读的区别

脏读: 原文链接:这一次,带你搞清楚MySQL的事务隔离级别! 使用过关系型数据库的,应该都事务的概念有所了解,知道事务有 ACID 四个基本属性:原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability),今天我们主要来理解一下事务的隔离性。 声明:MySQL专栏学习系列,基本上是本人学习极客时间《MySQL实战45讲》专栏内容的...

qq_35433593的博客 2万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

不可重复读和幻读有什么区别区别?

一、不可重复读 在同⼀个事务中执⾏同⼀个读取操作,但是结果不⼀致。 二、幻读 同样的事务操作,在前后两个时间段内执⾏对同⼀个数据项的读取,可能出现不⼀致的结果。 tip:不可重复读和幻读两者有些相似。但不可重复读重点在于update和delete,而幻读的重点在于insert。 三、使用锁机制解决问题 3.1 使用悲观锁机制解决这两种问题 在可重复读中,该sql第一次读取到数据后,就将这些数据加锁,其它事务无法修改这些数据,就可以实现可重复读了。但这种方法却无法锁住insert的数据,所以当事务A先

本人的技术和文笔有限,正在努力成长中,请各位朋友多多指正与包涵! 1万+

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

MySQL中幻读与不可重复读的区别

幻读主要关注于同一条件查询时新增的记录,导致结果集发生变化。不可重复读主要关注于同一记录的值在不同读取中发生变化。这两个现象都是在事务处理过程中需要考虑的重要问题,尤其是在需要保持数据一致性的应用场景中。通常,选择合适的事务隔离级别(如可重复读、Serializable 等)可以有效避免这些问题。

islautao的博客 1174

mysql幻读和不可重复读的区别_到底什么是mysql的幻读和不可重复读

幻读和不可重复读的定义事务A 按照一定条件进行数据读取, 期间事务B 插入了相同搜索条件的新数据,事务A再次按照原先条件进行读取时,发现了事务B 新插入的数据称为幻读。如果事务A 按一定条件搜索, 期间事务B 删除了符合条件的某一条数据,导致事务A 再次读取时数据少了一条。这种情况归为不可重复读这样来看幻读和不可重复读的原理是类似的,下面不再分开讲解。准备工作Mysql 隔离级别为 可重复读rep...

weixin_30476033的博客 700

不可重复读和幻读的区别_脏读,不可重复读,幻读讲解

首先我们先讨论一下问题,是不是在ACID的保护下,数据就一定不会产生不一致的现象呢?在关系数据库库系统中,多个会话可以访问同一个数据库的同一个表的同一行,这样,对于数据而言,就意味着在同一个时间内,有多个会话可以对其施加操作(或读操作或写操作),读写操作施加的顺序不停以及事务A特性对事务结果的影响(或成功或失败,也就是要不提交要不中止)。这三种因素叠加在一起,会存在几种对数据有不同影响的情况读-读...

weixin_39564036的博客 162

不可重复读和幻读的区别

不可重复读和幻读都是同一事务内,不同时间,读取的数据结果不一样。 区别: 不可重复读:别的事务更新(update)操作导致的 幻读:别的事务插入(insert)或者删除(update)导致的

软件工程小施同学 的专栏 1048

不可重复读和幻读的区别_一对冤家,不可重复读和幻读傻傻分不清楚

点击上方“业余草”,选择“置顶公众号”第一时间获取技术干货和业界资讯!昨天,微信群里一位网友,发了一个可重复读和幻读的测试代码,问什么?由于半个小时的时间,我要赶一篇明天的文章出来,就没细看。明天抽时间在具体的看看,今天我就着这个话题,先来说一说不可重复读和幻读的区别吧!首先,mysql 幻读并非是 "一个事务内进行两次相同操作居然得到了不一样的结果",因为它根本不可能发生在使用了 re...

weixin_39794130的博客 138

脏读、幻读、不可重复读的区别是什么

脏读、幻读、不可重复读的区别:1、脏读就是指当一个事务正在访问数据,并且对数据进行了修改;2、不可重复读是指在一个事务内,多次读同一数据;3、幻读是指当事务不是独立执行时发生的一种现象。 【相关学习推荐:mysql教程】 脏读、幻读、不可重复读的区别:1. 脏读 :脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问 这个数据,然后使用了这个数据。 2. 不可重复读 :是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同

loliDapao的博客 2113

数据库的脏读、不可重复读、幻读以及不可重复读和幻读的区别

介绍 数据库的脏读、不可重复读、幻读都和事务的隔离性有关。所以先了解一下事务的4大特性。 事务的4大特性(ACID): 原子性(Atomicity):事务是数据库的逻辑工作单位,它对数据库的修改要么全部执行,要么全部不执行。一致性(Consistemcy):事务前后,数据库的状态都满足所有的完整性约束。隔离性(Isolation):并发执行的N个事务是隔离的,一个不影响...

weixin_30662011的博客 123

mysql幻读和不可重复读的区别_不可重复读和幻读的区别

当然,从总的结果来看,似乎两者都表现为两次读取的结果不一致.但如果你从控制的角度来看,两者的区别就比较大对于前者,只需要锁住满足条件的记录对于后者,要锁住满足条件及其相近的记录-----------------------------------------------------------我这么理解是否可以?避免不可重复读需要锁行就行避免幻影读则需要锁表-----...

weixin_32771907的博客 940
上一篇: redis 存储自定义java对象有几种方式
下一篇: 事务隔离级别
大树叶
博客等级 码龄12年 1171粉丝 664原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值