wxvirus wxvirus
首页
  • Go文章

    • Go语言学习
  • Rust

    • Rust学习
  • Java

    • 《Java》
  • Python文章

    • Python
  • PHP文章

    • PHP设计模式
  • 学习笔记

    • 《Git》
  • HTML
  • CSS
  • JS
  • 技术文档
  • GitHub技巧
  • 刷题
  • 博客搭建
  • 算法学习
  • 架构设计
  • 设计模式
  • 学习
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

无解的lifecycle

let today = new Beginning()
首页
  • Go文章

    • Go语言学习
  • Rust

    • Rust学习
  • Java

    • 《Java》
  • Python文章

    • Python
  • PHP文章

    • PHP设计模式
  • 学习笔记

    • 《Git》
  • HTML
  • CSS
  • JS
  • 技术文档
  • GitHub技巧
  • 刷题
  • 博客搭建
  • 算法学习
  • 架构设计
  • 设计模式
  • 学习
  • 面试
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • C&C++

  • PHP

  • Python

  • Go

  • microservice

  • rust

  • Java

  • 学习笔记

    • 《Git》学习笔记
    • MySQL基础学习
    • redis基础
    • redis了解
    • MySQL事务并发问题
      • 脏读(Dirty read)
      • 不可重复读(Unrepeatableread)
      • 幻读(Phantom read)
    • MySQL事务隔离级别
    • 单点登录token与JWT介绍
    • MySQL约束条件
    • redis持久化机制以及缓存过期和淘汰策略
    • redis数据类型
    • consul的raft算法
  • 后端
  • 学习笔记
wxvirus
2021-11-28

MySQL事务并发问题

# 脏读(Dirty read)

当一个事务正在访问的数据并且对数据进行了修改 ,而这种修改还没有提交到数据库中,这时另外一个事务也访问了这个数据,然后使用了这个数据。因为这个数据是还没提交的数据,那么另外一个事务读取到的这个数据是"脏数据",依据"脏数据"所做的操作可能是不正确的。

时间点 事务 A 事务 B
1 开启事务 A
2 开启事务 B
3 查询余额为 100
4 余额增加至 150(尚未提交)
5 查询余额为 150(脏数据)
6 事务回滚

# 不可重复读(Unrepeatableread)

指在一个事务内多次读取同一数据。在这个事务还未结束时,另一个事务也访问该数据,那么,在第一个事务中的两次读数据之间,由于第二个事务的修改导致第一个事务两次读取的数据可能不太一样。这就发生了在一个事务内两次读到的数据是不一样的。因此成为不可重复读。

时间点 事务 A 事务 B
1 开启事务 A
2 开启事务 B
3 查询余额为 100
4 余额增加至 150
5 查询余额为 100
6 提交事务
7 查询余额为 150

体现在数据的修改,锁住一行记录即可

# 幻读(Phantom read)

幻读与不可重复度类似,它发生在一个事务(T1)读取了几行数据,接着另外一个并发事务(T2)插入了一些数据时,在随后的查询中,第一个事务(T1)就会发现多了一些原本不存在的记录,就像发生了幻觉一样,所以称之为幻读。

时间点 事务 A 事务 B
1 开启事务 A
2 开启事务 B
3 查询 id<3 的所有记录,共 3 条
4 插入一条记录 id=2
5 提交事务
6 查询 id<3 的所有记录,共 4 条

体现在新增和删除,得锁住整张表

编辑 (opens new window)
上次更新: 2021/11/28, 20:18:42
redis了解
MySQL事务隔离级别

← redis了解 MySQL事务隔离级别→

最近更新
01
redis的配置
03-23
02
redis的 cluster 集群
03-23
03
redis缓存设计原理
03-23
更多文章>
Theme by Vdoing | Copyright © 2021-2023 wxvirus
苏ICP备2021007210号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式