IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> 脏读会引起什么问题 -> 正文阅读

[大数据]脏读会引起什么问题

脏读会引起什么问题

引言

在事务的隔离级别中我们会看到四种事务隔离级别(读未提交,读已提交,可重复读,串行化),和在不同隔离级别下会产生的问题,其中第一个问题就是再读未提交下会产生脏读的情况。那究竟什么是脏读?而脏读又回引起什么问题呢?

什么是脏读

首先有两个背景要说明一下

  1. MySQL服务并不是单线程运行的
  2. 脏读就是事务产生的修改在提交之前,已经可以被其他事务给读到了。

假设两个不同的线程分别有两个不同的事务A和B,他们按照下面的时序来执行,假设初始值为0。那么,在B1读数据阶段就会读到200的值。这就是脏读,在A2提交步骤执行前,其他线程的事务读到了它要修改的值。

事务A 行数据 事务B A1:设为200 B1:读数据 B2:加100 B1:提交 A2:提交 事务A 行数据 事务B

会引起什么问题

那这会有什么问题呢?200本来不就是要提交的吗?问题就在于事务提交可能失败,失败以后会回滚。还按照上面的图来说明问题,在隔离级别为读未提交的情况下,AB两个事务正常执行完以后值应该是300。可是假设A事务执行过程中产生异常回滚了,我们期望的值其实应该是100。但是不好意思,因为在B1步骤已经读到值为200,然后再加100,那结果值就只能是300了。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2022-01-08 14:05:51  更:2022-01-08 14:06:40 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/19 18:32:19-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码