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

事务并发问题 与 事务隔离级别

来源:微软sql文档
https://learn.microsoft.com/en-us/sql/odbc/reference/develop-app/transaction-isolation-levels?view=sql-server-ver16

事务隔离级别,是一种衡量事务隔离程度的指标。
事务隔离级别的定义,取决于能不能解决以下几个问题:

  • 脏读:一个事务能读到其他事务未提交的数据。举例:
    • 事务A更新了一行但没提交;
    • 事务B读取到了A更新的数据;
    • 然后A进行回滚,撤销了刚才的更新操作;
    • 此时B读到的是本来不应该存在的数据,即脏数据。

  • 不可重复读:一个事务两次读取同一行,得到的数据却不同。举例:
    • 事务A查询了一行;
    • 事务B更新或者删除了该行、并且提交了;
    • 事务A重新读取这一行,发现数据被修改或者结果集为空,即查询结果不同了。

  • 幻读:“幻”意为幻影行,执行相同的查询语句两次,第二次却多查出几条新记录,突然多出的新记录如同幻影一般。举例:
    • 事务A第一次执行select,获得了结果集;
    • 事务B update一行导致其满足了A的查询条件,或者插入了满足A的查询条件的行
    • 事务A再次执行相同的select语句,发现多出了新的结果,即出现幻影。

不同的隔离级别可以解决的问题:

事务隔离级别说明脏读不可重复读幻读
读未提交可以读到其他事务未提交的数据XXX
读已提交只能读到其他事务提交后的数据解决XX
可重复读再次查询该条记录结果不变解决解决X
串行化执行相同查询条件结果不变解决解决解决

注意
事务隔离级别不会影响事务自身,事务可以直接看到自己执行的操作结果

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

相关文章:

  • 云原生Kubernetes系列项目实战-k8s集群+高可用负载均衡层+防火墙
  • MFC为什么说文档在数据的保存和给用户提供数据之间划分了清晰的界限?
  • SAS:PROC SQL和ANSI标准
  • 使用mysql_config_editor可以为特定的MySQL服务器或客户端程序设置登录路径
  • gridview的模板按钮如何判断用户点击的是哪一行
  • 虚拟化 之三 详解 jailhouse(ARM 平台)的构建过程、配置及使用
  • 数据安全:Web3时代的隐私保护新标准
  • STM32串口不定长接收空闲中断
  • Ubuntu 设置开机启动脚本
  • C# Task 包含 await ConfigureAwait CancellationTokenSource
  • Python数据分析与建模库-02科学计算库Numpy01-05合集
  • 【前端项目笔记】1 登录与登出功能实现
  • 是字符串定义以及在C语言中字符串是如何表示的
  • 辽宁普通测径仪升级智能测径仪后都有哪些改进?
  • 【微信小程序】事件分类以及阻止事件冒泡
  • 踩坑!被node-sass折磨的一天
  • App UI 风格打造独特体验
  • 【学习笔记8】阅读StyleID论文源码
  • wordpress旅游网站模板
  • vs2019 c++20规范 STL 库中头文件 <atomic> 源码注释及探讨几个知识点
  • Flink任务如何跑起来之 2.算子 StreamOperator
  • 学习笔记——路由网络基础——路由优先级(preference)
  • 数据预处理——调整方差、标准化、归一化(Matlab、python)
  • opencv_特征检测和描述
  • CID引流电商下的3C产品选品策略深度解析
  • DeepSORT(目标跟踪算法)中的状态向量与状态转移矩阵
  • 李宏毅深度学习01——基本概念简介
  • TcpClient 服务器、客户端连接
  • 13大最佳工程项目管理系统软件盘点
  • SpringMVC:拦截器(Interceptor)