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

我们来学mysql -- 事务并发之不可重复读(原理篇)

事务并发之不可重复读

  • 题记
  • 不可重复读
  • 系列文章

题记

  • 在《事务之概念》提到事务对应现实世界的状态转换,这个过程要满足4个特性
  • 这世界,真理只在大炮射程之类,通往和平的道路,非“常人”可以驾驭
  • 一个人生活按部就班,人多起来,难免鸡飞狗跳
  • 同理现实世界的状态转换映射到数据库,满足4个特性也非一帆风顺
  • 数据库江湖,一个事务任我行,两个事务南北双雄,多事务江湖大乱
  • 接下来便是并发事务,不可重复读的问题

不可重复读

  • 一个例子

    • 在2225年的一天,一条时空裂缝被人为打开,一个身影窜入其中消失不见
    • 时间来到2025年6月7号,地点是一所学校的考场中
    • 正在进行一场没有硝烟的战争
    • 消失的身影赫然出现在室外走廊某处隔间,将一副高科技装备摄入某间教室某人视网膜
    • 此时你如同开了天眼一般,全校成绩最优学生试卷跃然眼前,起初你大吃一惊
    • 然后,你奋笔疾书…
    • 一抄到底后,你保持了良好的习惯-再检查一遍( 不交卷 ),不查不知道,发现存在出入很大的答案
    • 当然,这点小插曲不影响你取的了全班第一名,全校第二名,全市前5名,全省前10名的成绩,踏入北大榜上清华

  • 醒一醒

    • 哦, 原来是夏季的一个午后,窗外阵阵蝉鸣,你缓慢睁开眼睛,望着熟悉又陌生的教室…
      在这里插入图片描述
    • 这又是个好例子
    • 咱们关注下那个小插曲 - 你抄了错误的“答案”
    • 那是一道开始没有被检查出来,但是写了一些,做题人选择先易再难跳过此题
    • 但是抄题人的你,奋笔疾书…
    • 这就是你抄了别人未确定的答案,所以才前后不一样

  • 如果一个事务修改了另一个未提交事务读取的数据,便是不可重复读

    • 同样我们用人话来进行翻译
    • 这里让我们来进行模拟
      • 数据库中是参考的答案
      • 读写到试卷中是内存的记录
      • 交卷对应着提交
    • 奋笔疾书完的你,没有交卷(未提交
    • 有题目,被修正了答案(其他事务修改
    • 仔细检查的你查到答案变化(不可重复读
    • 是不是完美的阐述了这个概念…
    • 等一等,此时,有人提出疑问:你未提交啥,你不只是读取吗?你读还不给人家修改?
    • 问的好,真不愧是咱们博文的读者,眼光独到,独立思考
      • 再看下定义 未提交事务读取的数据
      • 它描述的不只是一个读取操作(sql)
      • 是在这个事务的一系列操作中,存在一个读取操作
      • 是这一系列操作的事务还未提交

  • 故事的最后

    • 2225年的某一天,你孙子的孙子,依然穷困潦倒,别人已事业有成,但他孑然一身
    • 原来那个夏天不是一场梦,逆天改命的背后,是你儿子的儿子的儿子,不是亲儿子
      在这里插入图片描述

系列文章

我们来学mysql – 有无事务ID(原理版)
我们来学mysql – 建立索引(原理版)
我们来学mysql – 使用索引(原理版)
我们来学mysql – 索引失效(原理版)
我们来学mysql – 用不上的索引(原理版)
我们来学mysql – 索引上的锁(原理版)
我们来学mysql – 访问方法(原理篇)
我们来学mysql – 连接(原理版)
我们来学mysql – 查询成本之索引选择(原理篇)
我们来学mysql – EXPLAIN之ID(原理篇)
我们来学mysql – 事务之概念(原理篇)
我们来学mysql – 事务并发之脏写(原理篇)
我们来学mysql – 事务并发之脏读(原理篇)
我们来学mysql – 事务并发之幻读(原理篇)

在这里插入图片描述

http://www.lryc.cn/news/503190.html

相关文章:

  • ABAQUS进行焊接仿真分析(含子程序)
  • BAPI_GOODSMVT_CREATE物料凭证增强字段
  • tomcat的优化和动静分离
  • [ShaderLab] 【Unity】【图像编程】理解 Unity Shader 的结构
  • vue的前端架构 介绍各自的优缺点
  • 可信AI与零知识证明的概念
  • JavaScript逆向时,常用的11个hook
  • PCL点云库入门——PCL库可视化之CloudViewer类简单点云信息显示
  • C++ 【衔接篇】
  • qcreator 调试原理
  • Windows 系统中的组策略编辑器如何打开?
  • scala的泛型类
  • 基于Couchbase的数据构建方案:数仓分层
  • 信创改造-Spring Boot 项目部署至 TongWeb
  • supervision - 好用的计算机视觉 AI 工具库
  • 程序的调试
  • 使用html 和javascript 实现微信界面功能2
  • 虚幻引擎Actor类生命周期
  • 记录2024-leetcode-字符串DP
  • 爬虫获取的数据如何有效存储和管理?
  • [Unity] AppLovin Max接入Native 广告 IOS篇
  • 康耐视智能相机(Insight)通过ModbusTCP发送字符串到倍福(BECKHOFF)PLC中
  • TIFS投稿记录(IEEE Transactions on Information Forensics Security)
  • 极越汽车,加速跌落
  • 深入解析MySQL事务隔离级别与锁机制在银行账户业务中的应用
  • postman可以通的请求,前端通不了(前端添加Content-type,后端收不到请求)
  • 【Java计算机毕业设计】基于SSM+VUE宠物领养管理系统【源代码+数据库+LW文档+开题报告+答辩稿+部署教程+代码讲解】
  • 排队论、负载均衡和任务调度关系
  • 智能客户服务:科技赋能下的新体验
  • 代码随想录第45天