数据库事务隔离级别

news2024/11/17 12:38:31

数据库事务隔离级别:
在这里插入图片描述

不同隔离级别引发的问题:
    对于同时运行的多个事务(多线程并发), 当这些事务访问数据库中相同的数据时, 如果没有采取必要的隔离机制, 就会导致各种并发问题: (问题的本质就是线程安全问题,共享数据的问题)

 1. 脏读

: 对于两个事务 T1, T2, T1 读取了已经被 T2 更新但还没有被提交的字段. 之后, 若 T2 回滚, T1读取的内容就是临时且无效的.

 1. 不可重复读

: 对于两个事务 T1, T2, T1 读取了一个字段, 然后 T2 更新并提交了该字段. 之后, T1再次读取同一个字段, 值就不同了.

 1. 幻读

: 对于两个事务 T1, T2, T1 从一个表中读取了一个字段, 然后 T2 在该表中插入、删除了一些新的行. 之后, 如果 T1 再次读取同一个表, 就会多出、少了几行.
1,幻读:   说的是存不存在的问题:原来不存在的,现在存在了,则是幻读 ( 对应:Insert 、Delete )
2,不可重复读:   说的是变没变化的问题:原来是A,现在却变为了B,则为不可重复读( 对应:Update )
     从数据库实现上去理解:幻读是表锁,不可重复读是行锁
**可重复读隔离级别(Repeatable Read Isolation Level)**
一、可重复读(Repeatable Read)的概念
可重复读取隔离级别 只能看到(当前)事务开始之前提交的数据;它从不看到未提交的数据或并发事务在(当前)事务执行期间提交的更改。

二、Read Committed 隔离级别下的【不可重复读】发生场景举例
1、小明很开心自己考了69分,于是他连接到数据库查询自己的成绩来炫耀给小伙伴。
21)接着小明觉得还不尽兴,于是又查一次。
2)不幸的是,小明的班主任王老师复查试卷后,发现小明的成绩多加了10分,于是他连接到数据库来修改小明的成绩到 59分,王老师为了继续检查,并未提交事务。
3)那么,小明的第二次查询结果还是69分。他不知道自己其实是不及格的。除非等到王老师的更新操作提交(commit)以后,他再进行一次查询。
4)此时同一事务中,小明的第三次查询结果与第二次查询结果不一致,即为:不可重复读

说明:如果小明已经读到数据,但是当前事务未结束,在 Repeatable Read 隔离级别下,王老师是获取不到对数据的修改权限的。因为已经被小明读到了。Repeatable Read 会保证这两次读取到的数据是一样的,意味着对读取到的数据限制其它事务对其修改。
但是在 Read Committed 隔离模式下,小明的事务允许王老师的事务对其读取到的数据进行修改,这样就导致了同一事务中读取的数据不一致(不可重复度)。

三、读已提交 vs 可重复读 vs 序列化
【读已提交】:是一种隔离级别,可确保读取当前已提交的任何数据。 它只是限制读者看到任何中间的、未提交的、“脏”的阅读。 它不承诺如果事务重新发出读取,将找到相同的数据,数据在读取后可以自由更改。

【可重复读】:是更高的隔离级别,即除了保证【读已提交】级别之外,还保证读到的任何数据都不能被改变,即:如果事务再次读到同样的数据,就会发现之前读到的数据在原地,不变 ,并且可以阅读。

【序列化】:提供了更强大的保证:除了所有可重复读取保证之外,它还保证后续读取不会看到新数据。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/636654.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2核4G云服务器可以支持多少个网站数量?多维度权衡

2核4G服务器可以安装多少个网站?阿腾云2核4G5M带宽服务器目前安装了14个网站,从技术角度是没有限制的,只要云服务器性能够用,想安装几个网站就安装几个网站,但是从公网带宽和CPU计算性能方面考虑,要计算网站…

6.10 线程池及gdb调试多线程

线程池概念和使用 概念: 通俗的讲就是一个线程的池子,可以循环的完成任务的一组线程集合 必要性: 我们平时创建一个线程,完成某一个任务,等待线程的退出。但当需要创建大量的线程时,假设T1为创建线程时间&…

DAY 74 ELK企业级日志分析系统

ELK 简介 ELK平台是一套完整的日志集中处理解决方案,将 ElasticSearch、Logstash 和 Kiabana 三个开源工具配合使用, 完成更强大的用户对日志的查询、排序、统计需求 ELK各组件介绍 ElasticSearch: 是基于Lucene(一个全文检索引…

大麦一键生成订单截图 大麦生成购票链接

一键生成订单截图,生成购票链接 已对接支付 下载程序:https://pan.baidu.com/s/16lN3gvRIZm7pqhvVMYYecQ?pwd6zw3

idea设置@Author文件头注释

背景:做项目开发,每个文件的文件头现在看着特别难受,想着弄着统一一些吧 第一步:选择intelliJ IDEA,然后选择settings 第二步:选择Editor,再选择File and Code Templates 第三步:选择Includes,…

API管理的正确姿势--API Gateway

淘宝API管理的正确姿势--API Gateway 编者按: 数字化生态,以创新客户体验为核心,所有我们身边能感知到的变化都来自于渐近的创新。这些创新需要试错,需要不断的升级,并且创新往往与我们熟知的功能分离开来分别呈现。微…

企业级信息系统开发讲课笔记4.9 Thymeleaf模板引擎

文章目录 零、学习目标一、Spring Boot支持的视图技术二、Thymeleaf基本语法1、Thymeleaf常用标签2、Thymeleaf主要语法3、Thymeleaf内置对象4、Thymeleaf模板基本配置 三、Spring Boot整合Thymeleaf1、创建Spring Boot项目ThymeleafDemo2、在全局配置文件里配置Thymeleaf属性3…

简化本地Feign调用,老手教你这么玩

原创:微信公众号 码农参上,欢迎分享,转载请在文章头部保留出处,侵权必究 哈喽大家好啊,我是Hydra。 在平常的工作中,OpenFeign作为微服务间的调用组件使用的非常普遍,接口配合注解的调用方式突…

ChatGPT涉及的法律风险综述

ChatGPT(Chat Generative Pre-trained Transformer),是OpenAI研发的聊天机器人程序,于2022年11月30日发布。从发布的那一刻至今,ChatGPT一直受到各界的广泛关注。作为人工智能技术驱动的自然语言处理工具,它…

一种简单的文本监督语义分割框架

文章目录 A Simple Framework for Text-Supervised Semantic Segmentation摘要本文方法动机Locality-Driven Alignment(LoDA)SimSeg Framework 实验结果 A Simple Framework for Text-Supervised Semantic Segmentation 摘要 文本监督语义分割是一个新…

音频转文字工具都有哪些?分享三款好用的录音转文字软件

对于许多人来说,录音已经成为了记录重要信息的常用方法。但是,在实际应用中,往往会遇到如何将这些录音内容转换为文字记录的挑战。这是一个备受关注的问题。那么,录音如何转为文字呢?这篇文章就来给你推荐几个非常好用…

yolov5 的 mAP 和 召回率很低,但是精准率 AP还可以

可能的原因: 标注问题, 检查图片没有txt,导致有正样本的图片,被认为是背景,召回率降低。是否是中文路径, opencv这个cv2.imread不能读取中文图像。 改成这样就行。

预约按摩系统平台开发,常见问题解答

预约按摩平台系统常见问题: 预约流程:按摩系统提供简单易用的预约流程,用户只需要提供必要的信息即可完成预约,同时也可以随时修改或取消预约。 付款方式:按摩系统支持线上和线下支付方式,其中线上支付采用…

使用python-docx在文档中插入图片

在文档中添加图片的方法如下: from docx import Document from docx.shared import Inches, Cmdocument Document() document.add_heading(大标题, 0)# 新建word文档 p document.add_paragraph("下面插入图片:")document.add_picture(test_…

电力监控系统在电力系统中的应用

安科瑞虞佳豪 一年一度高考和中考即将来临,日前,国网咸丰县供电公司积极有序开展保电工作,全面进入“高考保供电”模式。 为全力保障高考期间供电安全,国网咸丰县供电公司将大水线供电线路采取分流运输方式,将除春晖…

IDEA之Mybatis Log Plugin的使用

Mybatis Log Plugin是一个用于记录Mybatis SQL语句执行情况的插件,帮助开发人员方便地追踪和分析Mybatis执行的SQL语句,从而更容易地找出程序中存在的问题和优化SQL语句的性能。 Mybatis Log Plugin可以以日志的形式记录Mybatis执行的SQL语句、执行时间…

win批量取消快速访问固定

win批量取消快速访问固定

Hibernate框架【五】——基本映射——多对多映射

系列文章目录 Hibernate框架【三】——基本映射——一对一映射 Hibernate框架【四】——基本映射——多对一和一对多映射 基本映射——多对多映射 系列文章目录前言一、多对多映射是什么?二、hibernate多对多关联映射(单向)1.实体结构2.示意…

Flink Table/Sql自定义Kudu Sink实战(其它Sink可参考)

目录 1. 背景2. 原理3. 通过Trino创建Kudu表4. FlinkKuduTableSinkProject项目4.1 pom.xml4.2 FlinkKuduTableSinkFactory.scala4.3 META-INF/services4.4 FlinkKuduTableSinkTest.scala测试文件 5. 查看Kudu表数据 1. 背景 使用第三方的org.apache.bahir flink-connector-ku…

​2023年湖北企业人力资源管理师报考条件是什么?启程别告诉你

2023年湖北企业人力资源管理师报考条件是什么?启程别告诉你 2019年国家就取消了企业人力资源管理师国家职业资格考试,现在是改革为职业技能等级认证,由人社部监管的第三方组织机构组织考试和颁发证书,那改革后的企业人力资源管理师…