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

到底什么才是幻读?

💗推荐阅读文章💗

  • 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》
  • 🌺MySQL系列🌺👉2️⃣《MySQL系列教程》
  • 🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》
  • 🌻SSM框架系列🌻👉4️⃣《SSM框架系列教程》

🎉本博客知识点收录于🎉👉🚀《MySQL系列教程》🚀—>✈️12【事务的隔离级别】✈️

文章目录

    • 2.7 幻读
      • 2.7.1 幻读解决情况1):
      • 2.7.2 幻读解决情况2):
      • 2.7.3 幻读问题出现情况1):
      • 2.7.3 特殊情况:

2.7 幻读

概念:一次事务多次读取到的条数不一致而引发的问题;

在InnoDB(暂时理解是MySQL)中幻读在很多地方都得到了解决,但在一些特殊的情况下,还是会引发幻读问题;

为什么有的情况下能解决,有的情况下解决不了?因为一次事务多次读取到的条数不一致会导致有很多情况发生!

2.7.1 幻读解决情况1):

还原数据:

update account set money=1000;-- 设置隔离级别为repeatable read
set global transaction isolation level repeatable read;

记得重启客户端

session-01session-02
begin;
begin;
select * from account;
insert into account values(3,‘c’,1000);
commit;
select * from account;

观察变化:

在这里插入图片描述

幻读问题得到解决

2.7.2 幻读解决情况2):

还原数据

案例:

session-01session-02
begin;
begin;
select sum(money) from account;
insert into account values(3,‘c’,1000);
commit;
select sum(money) from account;

观察变化:

在这里插入图片描述

2.7.3 幻读问题出现情况1):

还原数据

  • 案例:
session-01session-02
begin;
begin;
select count(id) from account;
insert into account values(3,‘c’,1000);
commit;
select count(id) from account;
update account set money=0;
select count(id) from account;

观察变化:

在这里插入图片描述

2.7.3 特殊情况:

还原数据

  • 案例:
session-01session-02
begin;
begin;
select * from account;
select * from account;
insert into account values(3,“c”,1000);
commit;
select * from account;
insert into account values(3,“c”,1000);

观察变化:

在这里插入图片描述

Tips:严格意义来说,上述案例是MySQL的快照机制导致的,不能算幻读;关于幻读我们理解概念就行,即:两次读取到的条数不一致!这就是幻读

相关文章:

到底什么才是幻读?

💗推荐阅读文章💗 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》🌺MySQL系列🌺👉2️⃣《MySQL系列教程》🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》…...

RPC重试机制和控制方案

重试机制 因为网络抖动等原因导致 RPC 调用失败,这时候使用重试机制可以提高请求的最终成功率,减少故障影响,让系统运行更稳定。 重试简易实现方案 在重试的过程中,为了能够在约定的时间内进行安全可靠地重试,在每次…...

【无标题】动态给结构体赋值

#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { int id; char name[20]; double score; } Student; int main() { Student *p (Student *)malloc(sizeof(Student)); if (p NULL) { printf(“Memory allocation failed.”…...

centos7 soft raid每周自动同步的问题

之前redhat老版本时也遇到过这样的问题https://blog.csdn.net/jolly10/article/details/108768360centos7解决的办法略有不同&#xff0c;记录一下&#xff1a;centos7默认是每周日凌晨1点进行raid检查&#xff0c;有点太频繁了[oracleqht117 data]$ ls /etc/cron*/etc/cron.de…...

嵌入式Linux内核代码风格

这是一个简短的文档&#xff0c;描述了linux内核的首选代码风格。代码风格是因人而异的&#xff0c;而且我 不愿意把我的观点强加给任何人&#xff0c;不过这里所讲述的是我必须要维护的代码所遵守的风格&#xff0c; 并且我也希望绝大多数其他代码也能遵守这个风格。请在写代码…...

Andorid:关于Binder几个面试问题

1.简单介绍下binderbinder是一种进程间通讯的机制进程间通讯需要了解用户空间和内核空间每个进程拥有自己的独立虚拟机&#xff0c;系统为他们分配的地址空间都是互相隔离的。如两个进程需要进行通讯&#xff0c;则需要使用到内核空间做载体&#xff0c;内核空间是所有进程共享…...

【剑指Offer-Java】包含min函数的栈?

题目 定义栈的数据结构&#xff0c;请在该类型中实现一个能够得到栈的最小元素的 min 函数在该栈中&#xff0c;调用 min、push 及 pop 的时间复杂度都是 O(1)。 MinStack minStack new MinStack(); minStack.push(-2); minStack.push(0); minStack.push(-3); minStack.min()…...

红队APT——邮件钓鱼攻击SwaksOffice漏洞RLO隐藏压缩释放

目录 (一)采用自己搭建Ewomail配合Swaks 0x01 搭建过程 0x02 配置转发信息 (二)网页钓鱼-克隆修改...

【Java|基础篇】超详细讲解运算符

文章目录1. 什么是运算符2. 算术运算符隐式类型转换强制类型转换字符串的拼接字符相加自增和自减运算符3.赋值运算符4. 关系运算符5. 逻辑运算符短路与(&&)和短路或(||)6.三目运算符7. 位运算符8. 移位运算1. 什么是运算符 运算符用于执行程序代码运算&#xff0c;会针…...

Promise-异步回调

1.理解Promise promise是ES6提出的异步编程的新的解决方案&#xff0c;通过链式调用解决ajax回调地狱 从语法上看&#xff0c;promise是一个构造函数&#xff0c;自己身上有all、reject、resolve方法&#xff0c;原型上有then、catch方法 从功能上看&#xff0c;Promise对象用…...

【设计模式之美 设计原则与思想:设计原则】21 | 理论七:重复的代码就一定违背DRY吗?如何提高代码的复用性?

在上一节课中&#xff0c;我们讲了 KISS 原则和 YAGNI 原则&#xff0c;KISS 原则可以说是人尽皆知。今天&#xff0c;我们再学习一个你肯定听过的原则&#xff0c;那就是 DRY 原则。它的英文描述为&#xff1a;Don’t Repeat Yourself。中文直译为&#xff1a;不要重复自己。将…...

深度学习 | 入个Pytorch的小门

本文主要参考 1’ 2’ 3 更新&#xff1a;2023 / 3 / 1 深度学习 | 入个Pytorch的小门 - 1. 常见数据操作创建操作算术操作加法索引形状查询形状改变形状广播机制广播条件运算数据类型转换Tensor转NumPyNumPy转Tensor线性回归线性回归的基本要素1. 模型2. 数据集3. 损失函数4.…...

应用上云指导

应用上云指导方法论。应用上云指传统应用迁移到云上&#xff0c;云上应用采用K8S部署。本文旨在提供一种方法、流程&#xff0c;指导应用上云&#xff0c;以求优化上云工作&#xff0c;提供应用上云效率。主要包含以下内容&#xff1a;应用上云工作角色、分工应用上云标准流程及…...

进程概念~

进程概念 &#xff08;冯诺依曼体系结构&#xff0c;操作系统&#xff0c;进程概念&#xff0c;进程状态&#xff0c;环境变量&#xff0c;程序地址空间&#xff09; 冯诺依曼体系结构&#xff1a;&#xff08;计算机硬件体系结构&#xff09; 输入设备&#xff0c;输出设备&a…...

三天吃透Java基础八股文

本文已经收录到Github仓库&#xff0c;该仓库包含计算机基础、Java基础、多线程、JVM、数据库、Redis、Spring、Mybatis、SpringMVC、SpringBoot、分布式、微服务、设计模式、架构、校招社招分享等核心知识点&#xff0c;欢迎star~ Github地址&#xff1a;https://github.com/…...

YOLOv8训练自己的数据集(超详细)

一、准备深度学习环境本人的笔记本电脑系统是&#xff1a;Windows10YOLO系列最新版本的YOLOv8已经发布了&#xff0c;详细介绍可以参考我前面写的博客&#xff0c;目前ultralytics已经发布了部分代码以及说明&#xff0c;可以在github上下载YOLOv8代码&#xff0c;代码文件夹中…...

【洛谷 P1088】[NOIP2004 普及组] 火星人 题解(全排列+向量)

[NOIP2004 普及组] 火星人 题目描述 人类终于登上了火星的土地并且见到了神秘的火星人。人类和火星人都无法理解对方的语言&#xff0c;但是我们的科学家发明了一种用数字交流的方法。这种交流方法是这样的&#xff0c;首先&#xff0c;火星人把一个非常大的数字告诉人类科学…...

基于混合蛙跳算法优化SVM的滚动轴承故障诊断python实现

1.混合蛙跳算法(SFLA)原理 混合蛙跳算法(SFLA)是一种受自然生物模仿启示而产生的基于群体的协同搜索方法,由局部搜索和全局信息交换两部分组成。 混合蛙跳算法中,每个青蛙的位置代表了一个可行解。青蛙在沼泽中跳跃,沼泽在离散的地方有很多石头,青蛙可以跳过这些石头来找…...

如何让AI帮你干活-娱乐(2)

背景&#xff1a;好容易完成朋友的任务&#xff0c;帮忙给小朋友绘画比赛生成一些创意参考图片。他给我个挑战更高的问题&#xff0c;是否可以帮他用AI生成一些视频。这个乍一听以现在AI技术根本不太可能完成。奈何他各种坚持&#xff0c;无奈被迫营业。苦脸接受了这个不可能完…...

文件异步多备常用方案

业务需求上经常存在需要对同一个文件进行双上传&#xff0c;上传到不同云存储桶&#xff0c;以防出现某一个云厂商因各种意外导致自身服务出现不可用的情况&#xff0c;当然&#xff0c;还有其他措施可以避免&#xff0c;现在只针对通过程序业务代码而双写存储的这个场景。 业务…...

如何通过智慧树自动化学习助手解决网课学习效率问题

如何通过智慧树自动化学习助手解决网课学习效率问题 【免费下载链接】zhihuishu 智慧树刷课插件&#xff0c;自动播放下一集、1.5倍速度、无声 项目地址: https://gitcode.com/gh_mirrors/zh/zhihuishu 副标题&#xff1a;面向时间紧张学习者的智能网课辅助工具 一、价…...

第 6 次执行后,PostgreSQL 执行计划为何突变?

引言 在 PostgreSQL 中&#xff0c;预处理语句通常用于提升性能并防止 SQL 注入。但一个不易察觉的行为是&#xff1a;查询规划器会在执行达到特定次数后自动改变执行计划。 这种变化往往令人困惑——SQL 本身未发生变化&#xff0c;执行计划却突然发生切换&#xff0c;有时甚至…...

为什么28S与18S rRNA比值可用于评估RNA质量?

在分子生物学实验中&#xff0c;获得高质量RNA样本是基因表达分析、转录组测序等研究成功的关键前提。在众多RNA质量评估方法中&#xff0c;28S与18S核糖体RNA的比值长期被广泛用作实验室中的“黄金标准”。这一标准为何如此受重视&#xff1f;其背后有着明确的原理与判断依据。…...

2026年,正规GEO优化排名公司将如何引领行业新潮流?

在AI搜索全面普及的当下&#xff0c;GEO&#xff08;生成式引擎优化&#xff09;成为企业突破曝光瓶颈的核心赛道。到2026年&#xff0c;正规GEO优化排名公司将凭借其专业能力和创新策略&#xff0c;引领行业迈向新的发展阶段。以[上海铪铪网络科技有限公司]为例&#xff0c;我…...

OpenClaw自动化测试:千问3.5-27B驱动UI全流程验证

OpenClaw自动化测试&#xff1a;千问3.5-27B驱动UI全流程验证 1. 为什么选择OpenClaw做自动化测试&#xff1f; 去年接手一个前端重构项目时&#xff0c;我遇到了一个典型困境&#xff1a;每次代码改动后&#xff0c;都需要手动执行47个关键页面的功能测试。这套测试流程完整…...

STM32单片机技术优势与应用指南

1. STM32的崛起背景与技术优势2007年之前&#xff0c;8位单片机市场被8051架构主导&#xff0c;16位市场则有MSP430等产品。这些传统MCU在简单控制领域表现出色&#xff0c;但随着物联网时代的到来&#xff0c;其局限性逐渐显现&#xff1a;性能瓶颈&#xff1a;8位机的处理能力…...

广州PMP培训机构怎么选?才聚是标准答案

选广州PMP培训机构&#xff0c;核心看官方授权、师资、通过率、本地化服务、学考一体化&#xff0c;才聚在广州确实是综合实力最强、最稳妥的 “标准答案”。 一、在选择时&#xff0c;可以从下面几个方面来评估一家培训机构&#xff0c;看看哪家更适合你&#xff1a; 官方授权…...

AI辅助开发:让快马智能生成带安全验证的路由器手机登录界面

最近在做一个路由器管理后台的移动端登录页面&#xff0c;需要实现192.168.1.1这个常见路由器地址的手机端登录功能。作为一个前端开发者&#xff0c;我发现用AI辅助开发可以大大提升效率&#xff0c;特别是处理安全验证这类复杂逻辑时。下面分享下我的实践过程。 需求分析 首先…...

第6章 数据类型转换-6.1 转换为整数

通过使用int()函数可以将仅含有数字的字符串或浮点数转换为十进制整数。其语法格式如下&#xff1a;int([x [, base]])其中&#xff0c;参数x为可选参数&#xff0c;表示仅含有数字的字符串或浮点数&#xff0c;如果省略该参数&#xff0c;则该函数返回0&#xff1b;参数base为…...

如何在5分钟内快速上手Wade搜索库:终极快速入门指南

如何在5分钟内快速上手Wade搜索库&#xff1a;终极快速入门指南 【免费下载链接】wade :ocean: Blazing fast 1kb search library 项目地址: https://gitcode.com/gh_mirrors/wa/wade Wade是一个轻量级、高性能的JavaScript搜索库&#xff0c;仅1kb大小却提供了强大的全…...