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

【面试干货】事务的并发问题(脏读、不可重复读、幻读)与解决策略

【面试干货】事务的并发问题(脏读、不可重复读、幻读)与解决策略

  • 一、脏读(Dirty Read)
  • 二、不可重复读(Non-repeatable Read)
  • 三、幻读(Phantom Read)
  • 四、总结


💖The Begin💖点点关注,收藏不迷路💖

在数据库管理系统(DBMS)中,事务的并发执行是提高系统性能的关键。然而,并发执行也带来了一系列的问题,如 脏读、不可重复读和幻读。本文将详细解释这些并发问题,并探讨相应的解决策略。

一、脏读(Dirty Read)

1、定义

脏读是指一个事务读取了另一个事务尚未提交的数据。由于被读取的数据可能由于某些原因被回滚,因此该数据是“脏”的,即不可靠 的。

2、示例

假设 事务A读取了事务B尚未提交的对某个数据行的修改,随后事务B发生错误并执行了回滚操作。此时,事务A读取到的数据就是脏数据,因为它已经不再是数据库中的当前状态

3、解决策略

为了避免脏读,DBMS采用了隔离级别的概念。通过设置不同的隔离级别,可以控制事务之间的可见性。例如,在 可重复读(Repeatable Read)或串行化(Serializable) 隔离级别下,事务只能读取已经提交的数据,从而避免了脏读。

二、不可重复读(Non-repeatable Read)

1、定义

不可重复读 是指在一个事务内,多次读取同一数据,但由于其他事务的修改并提交,导致该事务先后读取到的数据结果不一致。

2、示例

假设事务A两次读取同一数据行,在两次读取之间,事务B修改了该数据行并提交。此时,事务A第二次读取到的数据与前一次不同,即发生了不可重复读

3、解决策略

为了解决不可重复读问题,DBMS同样采用了隔离级别的概念。在 可重复读(Repeatable Read)或串行化(Serializable) 隔离级别下,事务在开始时会获取一个数据快照,并在整个事务过程中始终基于该快照进行读取操作,从而保证了多次读取结果的一致性

三、幻读(Phantom Read)

1、定义

幻读 是指在一个事务内,执行相同的查询操作,但由于其他事务的插入或删除操作并提交,导致该事务两次查询到的结果集不一致

2、示例

假设事务A执行了一个范围查询(如查询年龄大于20且小于30的所有用户),在查询结果返回后,事务B插入了一个年龄为25的新用户并提交此时,如果事务A再次执行相同的范围查询,会发现新的用户记录“凭空出现”了,即发生了幻读

3、解决策略

幻读 的解决策略通常依赖于特定的数据库管理系统和隔离级别。在 串行化(Serializable) 隔离级别下,DBMS会 通过加锁等机制来防止其他事务的插入或删除操作,从而避免了幻读。此外,一些数据库管理系统还提供了特定的查询选项或语句来避免幻读。

如: 使用SELECT … FOR UPDATE语句来锁定查询结果集中的所有行。

四、总结

事务的并发执行是数据库管理系统提高性能的重要手段,但同时也带来了一系列并发问题。通过合理设置隔离级别和采用相应的解决策略,我们可以有效地避免脏读、不可重复读和幻读等并发问题,确保数据库的一致性和可靠性。

在这里插入图片描述


💖The End💖点点关注,收藏不迷路💖

相关文章:

  • 帝国CMS验证码不显示怎么回事呢?
  • 【Linux signal】
  • 1.6 分组延时,丢失和吞吐量
  • 【oracle】Oracle RAC中的GNS到底是什么?
  • 简述MVC模式
  • Clickhouse 算术函数操作总结—— Clickhouse 基础篇(五)
  • 李廉洋:5.29黄金早盘2365-2345区间,今日行情走势分析及策略。
  • 部门来了个测试开发,听说是00后,上来一顿操作给我看蒙了...
  • 月薪5万是怎样谈的?
  • 数据结构:二叉树与树
  • 微软为团队推出了 Copilot
  • go-gin中session实现redis前缀和db库选择+单点登录
  • 嵌入式学习(Day:28 进程间通信2 -> 信号通信)
  • 视创云展「VR直播」是什么?有哪些功能和应用场景?
  • 机器学习-7-机器学习中常用的可视化方式总结
  • 【ArcGISPro】CSMPlugins文件夹
  • 用天工AI写文章,节约了8个人的成本
  • 高效编写大模型 Prompt 提示词,解锁 AI 无限创意潜能
  • OpenHarmony 实战开发——内核对象队列之算法详解
  • Java---图书管理系统(练习版)
  • 国家卫健委:工作相关肌肉骨骼疾病、精神和行为障碍成职业健康新挑战
  • 全国电影工作会:聚焦扩大电影国际交流合作,提升全球影响力
  • 新剧|反谍大剧《绝密较量》央一开播,张鲁一高圆圆主演
  • 黄永年:说狄仁杰的奏毁淫祠
  • 李公明|一周画记:哈佛打响第一枪
  • 美大学建“私人联盟”对抗政府:学校已存在300年,特朗普才上任3个月