【数据库之事务(一)】事务是什么,以及事务四个特性,以及事务并发问题和隔离级别

手把手教你YOLOv8/YOLOv11分割训练自己数据集和推理,并教你使用Labelme工具标注数据(附分割网络结构图) YOLOv8-seg 和 YOLOv11-seg 都是一种高效实例分割算法,实例分割模型的输出是一组勾勒出图像中每个物体的遮罩或轮廓,以及每个物体的类标签和置信度分数。当你不仅需要知道物体在图像中的位置,还需要知道它们的具体形状时,实例分割就非常有用了,功能非常强大,可以应对各种视觉任务。 YOLOv11-seg 则在 YOLOv8-seg 基础上进一步魔改了模型架构,相对分割速度可能更快,其他指标性能有待测试。实例分割可以用于自动驾驶、医疗图像处理、智能农业监控等领域。 阅读详情

一.什么是事务 
事务是应用程序中一系列严密的操作,所有操作必须成功完成,否则在每个操作中所作的所有更改都会被撤消。也就是事务具有原子性,一个事务中的一系列的操作要么全部成功,要么一个都不做。 
事务的结束有两种,当事务中的所以步骤全部成功执行时,事务提交。如果其中一个步骤失败,将发生回滚操作,撤消撤消之前到事务开始时的所以操作。 
二.事务的 ACID 
事务具有四个特征:

原子性( Atomicity )、

一致性( Consistency )、

隔离性( Isolation )

持续性( Durability )。

这四个特性简称为 ACID 特性。 
1 、原子性 
事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 
2 、一致性 
事 务执行的结果必须是使数据库从一个一致性状态变到另一个一致性状态。因此当数据库只包含成功事务提交的结果时,就说数据库处于一致性状态。如果数据库系统 运行中发生故障,有些事务尚未完成就被迫中断,这些未完成事务对数据库所做的修改有一部分已写入物理数据库,这时数据库就处于一种不正确的状态,或者说是 不一致的状态。 
3 、隔离性 
一个事务的执行不能其它事务干扰。即一个事务内部的操作及使用的数据对其它并发事务是隔离的,并发执行的各个事务之间不能互相干扰。 
4 、持续性 
也称永久性,指一个事务一旦提交,它对数据库中的数据的改变就应该是永久性的。接下来的其它操作或故障不应该对其执行结果有任何影响。 

事务中的所有操作要么全部执行,要么都不执行;
如果事务没有原子性的保证,那么在发生系统故障的情况下,数据库就有可能处于不一致状态。

三、事务的隔离级别及引发的并发问题

数据库系统提供了四种事务隔离级别供用户选择:

A.Serializable(串行化):一个事务在执行过程中完全看不到其他事务对数据库所做的更新(事务执行的时候不允许别的事务并发执行。事务串行化执行,事务只能一个接着一个地执行,而不能并发执行。)。

B.Repeatable Read(可重复读):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录,但是不能看到其他其他事务对已有记录的更新。

C.Read Commited(读已提交数据):一个事务在执行过程中可以看到其他事务已经提交的新插入的记录,而且能看到其他事务已经提交的对已有记录的更新。

D.Read Uncommitted(读未提交数据):一个事务在执行过程中可以看到其他事务没有提交的新插入的记录,而且能看到其他事务没有提交的对已有记录的更新。

 

 

丢失更新

脏读

非重复读

覆盖更新

幻像读

未提交读

Y

Y

Y

Y

Y

已提交读

N

N

Y

Y

Y

可重复读

N

N

N

N

Y

串行化

N

N

N

N

N



并发问题可归纳为以下几类: 

A.丢失更新:撤销一个事务时,把其他事务已提交的更新数据覆盖(A和B事务并发执行,A事务执行更新后,提交;B事务在A事务更新后,B事务结束前也做了对该行数据的更新操作,然后回滚,则两次更新操作都丢失了)。

B.脏读:一个事务读到另一个事务未提交的更新数据(A和B事务并发执行,B事务执行更新后,A事务查询B事务没有提交的数据,B事务回滚,则A事务得到的数据不是数据库中的真实数据。也就是脏数据,即和数据库中不一致的数据)。

C.不可重复读:一个事务读到另一个事务已提交的更新数据(A和B事务并发执行,A事务查询数据,然后B事务更新该数据,A再次查询该数据时,发现该数据变化了)。

D. 覆盖更新:这是不可重复读中的特例,一个事务覆盖另一个事务已提交的更新数据(即A事务更新数据,然后B事务更新该数据,A事务查询发现自己更新的数据变了)。

 

E.虚读(幻读):一个事务读到另一个事务已提交的新插入的数据(A和B事务并发执行,A事务查询数据,B事务插入或者删除数据,A事务再次查询发现结果集中有以前没有的数据或者以前有的数据消失了)。


四、事务中并发问题详解

数据库系统有四个隔离级别(大多数数据库默认级别为read commited)。对数据库使用何种隔离级别要审慎分析,因为

1. 维护一个最高的隔离级别虽然会防止数据的出错,但是却导致了并行度的损失,以及导致死锁出现的可能性增加。

2. 然而,降低隔离级别,却会引起一些难以发现的bug。

 

SERIALIZABLE(序列化)

 

添加范围锁(比如表锁,页锁等,关于range lock,我也没有很深入的研究),直到transaction A结束。以此阻止其它transaction B对此范围内的insert,update等操作。

 

幻读,脏读,不可重复读等问题都不会发生。

 

REPEATABLE READ(可重复读)

 

对于读出的记录,添加共享锁直到transaction A结束。其它transaction B对这个记录的试图修改会一直等待直到transaction A结束。

 

可能发生的问题:当执行一个范围查询时,可能会发生幻读。

 

READ COMMITTED(提交读)

 

在transaction A中读取数据时对记录添加共享锁,但读取结束立即释放。其它transaction B对这个记录的试图修改会一直等待直到A中的读取过程结束,而不需要整个transaction A的结束。所以,在transaction A的不同阶段对同一记录的读取结果可能是不同的。

 

可能发生的问题:不可重复读。

 

READ UNCOMMITTED(未提交读)

 

不添加共享锁。所以其它transaction B可以在transaction A对记录的读取过程中修改同一记录,可能会导致A读取的数据是一个被破坏的或者说不完整不正确的数据。

 

另外,在transaction A中可以读取到transaction B(未提交)中修改的数据。比如transaction B对R记录修改了,但未提交。此时,在transaction A中读取R记录,读出的是被B修改过的数据。

 

可能发生的问题:脏读。

 

 

问题

 

我们看到,当执行不同的隔离级别时,可能会发生各种各样不同的问题。下面对它们进行总结并举例说明。

 

幻读

 

幻读发生在当两个完全相同的查询执行时,第二次查询所返回的结果集跟第一个查询不相同。

 

发生的情况:没有范围锁。

 

例子:

 

事务1事务2
<span style="color: rgb(51, 0, 51); background-color: rgb(255, 255, 255);"><span class="kw1">SELECT</span>
 * <span class="kw1">FROM</span>
users
<span class="kw1">WHERE</span>
age <span class="kw1">BETWEEN</span>
<span class="nu0">10</span>
<span class="kw1">AND</span>
<span class="nu0">30</span>
</span>


<span style="color: rgb(51, 0, 51); background-color: rgb(255, 255, 255);"><span class="kw1">INSERT</span>
<span class="kw1">INTO</span>
users <span class="kw1">VALUES</span>
<span class="br0">(</span>
<span class="nu0">3</span>
, <span class="st0">'Bob'</span>
, <span class="nu0">27</span>
<span class="br0">)</span>;
</span><pre class="source-sql" name="code" style="white-space: pre-wrap; word-wrap: break-word; color: rgb(51, 51, 51); font-size: 1em; background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 0, 51);">COMMIT;</span>

<span style="color: rgb(51, 0, 51); background-color: rgb(255, 255, 255);"><span class="kw1">SELECT</span>
* <span class="kw1">FROM</span>
users<span class="kw1"> WHERE</span>
age <span class="kw1">BETWEEN</span>
<span class="nu0">10</span>
<span class="kw1">AND</span>
<span class="nu0">30</span>;</span>

 

 

如何避免:实行序列化隔离模式,在任何一个低级别的隔离中都可能会发生。

 

不可重复读

在基于锁的并行控制方法中,如果在执行select时不添加读锁,就会发生不可重复读问题。

在多版本并行控制机制中,当一个遇到提交冲突的事务需要回退但却被释放时,会发生不可重复读问题。

 

事务1事务2
<span style="background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 0, 51);"><span class="kw1">SELECT</span>
* <span class="kw1">FROM</span>
users <span class="kw1">WHERE</span>
id = <span class="nu0">1</span>;
</span></span>


<span style="color: rgb(51, 0, 51); background-color: rgb(255, 255, 255);"><span class="kw1">UPDATE</span>
users <span class="kw1">SET</span>
age = <span class="nu0">21</span>
<span class="kw1">WHERE</span>
id = <span class="nu0">1</span>
;
COMMIT; <span class="coMULTI">/* in multiversion concurrency*/
   control, or lock-based READ COMMITTED *</span>
</span>
<span style="background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 0, 51);"><span class="kw1">SELECT</span>
* <span class="kw1">FROM</span>
users <span class="kw1">WHERE</span>
id = <span class="nu0">1</span>;
</span></span>


<span style="background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 0, 51);">COMMIT; <span class="coMULTI">/* lock-based REPEATABLE READ */</span>
</span></span>

 

在上面这个例子中,事务2提交成功,它所做的修改已经可见。然而,事务1已经读取了一个其它的值。在序列化和可重复读的隔离级别中,数据库管理系统会返回旧值,即在被事务2修改之前的值。在提交读和未提交读隔离级别下,可能会返回被更新的值,这就是“不可重复读”。

 

有两个策略可以防止这个问题的发生:

1. 推迟事务2的执行,直至事务1提交或者回退。这种策略在使用锁时应用。(悲观锁机制,比如用select for update为数据行加上一个排他锁)

2. 而在多版本并行控制中,事务2可以被先提交。而事务1,继续执行在旧版本的数据上。当事务1终于尝试提交时,数据库会检验它的结果是否和事务1、事务2顺序执行时一样。如果是,则事务1提交成功。如果不是,事务1会被回退。(乐观锁机制)

 

脏读

脏读发生在一个事务A读取了被另一个事务B修改,但是还未提交的数据。假如B回退,则事务A读取的是无效的数据。这跟不可重复读类似,但是第二个事务不需要执行提交。 

 

事务1事务2
<span style="color: rgb(51, 0, 51); background-color: rgb(255, 255, 255);"><span class="kw1">SELECT</span>
* <span class="kw1">FROM</span>
users <span class="kw1">WHERE</span>
id = <span class="nu0">1</span>;</span>


<span style="color: rgb(51, 0, 51); background-color: rgb(255, 255, 255);"><span class="kw1">UPDATE</span>
users <span class="kw1">SET</span>
age = <span class="nu0">21</span>
<span class="kw1">WHERE</span>
id = <span class="nu0">1</span>
</span>
<span style="color: rgb(51, 0, 51); background-color: rgb(255, 255, 255);"><span class="kw1">SELECT</span>
<span class="kw1">FROM</span>
users <span class="kw1">WHERE</span>
id = <span class="nu0">1</span>;</span>


<span style="background-color: rgb(255, 255, 255);"><span style="color: rgb(51, 0, 51);">COMMIT; <span class="coMULTI">/* lock-based DIRTY READ */</span>
</span></span>




【制作100个unity游戏之22】3DRPG游戏开发07——其他详细的设计 我们会有有很多单例,如果每个单例都去写会很麻烦,所以我们定义泛型单例模式 Singleton,我们将所有的单例都继承这个泛型单例,就省略很多重复的工作定义一个GameManager类,继承Singleton,控制整个游戏的进度,比如如果主角死了,广播,游戏结束调用。 阅读详情

相关推荐

从零构建C++ Gerber解析器:以PCB缺陷检测为目标的实战指南

本文是一份面向PCB缺陷检测项目的实战指南,详细介绍了如何从零开始使用C++构建高性能的Gerber文件解析器。文章深入剖析了Gerber RS-274X格式,并提供了完整的开发环境搭建、核心数据结构设计、解析步骤实现以及为缺陷检测优化的具体方案,旨在帮助开发者获得对PCB制造数据的深度控制与极致性能。

weixin_29291185的博客 184

2. 什么是事务,事务的四个特性是什么?有哪些隔离级别?

事务的特性与隔离级别、最简单、最通俗易懂。

m0_57408900的博客 727

电容DAC版图布局中的对称艺术:从二维共质心到误差最小化

本文深入探讨了电容DAC版图布局中的对称艺术,重点介绍了二维共质心技术如何有效最小化误差。通过分析系统误差和随机误差的来源,详细解析了共质心布局的核心技术及优化策略,包括梯度误差补偿和寄生参数平衡方法。实战案例展示了该技术在12位SAR ADC设计中的应用效果,为高精度集成电路设计提供了重要参考。

weixin_29300241的博客 582

什么是事务,事务的四个特性是什么

    最近在学习pgSQL,忽然想到一个问题,pgSQL的事务是否和其他事务一样呢?由此就有了这篇小结。首先什么是事务?事务(Transaction)是并发控制单位,是用户定义的一个操作序列,这些操作要么都做,要么都不做,是一个不可分割的工作单位。事务通常以BEGIN TRANSACTION开始,以COMMIT或ROLLBACK结束。事务的 ACID又是什么?事务具有四个特征:原子性( Atom...

kayla的博客 2万+

Openbmc系列之自动化测试框架1

Openbmc作为当下BMC固件领域最流行的开源软件,具备从需求计划、开发、调试、测试、版本管理等完整的体系。在测试领域,Openbmc基于python的robotframework框架,实现Openbmc的自动化测试,为高效发布Openbmc版本提供有力支持。本文作为测试系列文档一,介绍Openbmc自动化测试虚拟Openbmc的环境搭建。

qq_20341747的博客 2109

试读源码在这里下载

试读文章的源码在这里下载。源码不做任何修改,重点重点重点:为了代码运行不报错,安装matlab 版本为 2021 及以上版本。matlab安装教程大家可以参考这个教程:手把手教你安装matlab软件。

在职AI算法工程师,擅长计算机视觉,YOLO目标检测、分割等,擅长web、pyqt界面可视化,好内容持续更新中,来这里跟大家一起学习,共同进步 4302

Mysql事务详细介绍

本篇讲了事务是什么?详细介绍了事务的四种特性,以及四种特性如何实现?还有特性之一的隔离性中的隔离级别都有什么?几种隔离级别依靠什么原理实现?如MVCC和版本链

weixin_52394141的博客 883

RK3399平台开发系列讲解(内核入门篇)1.2、如何高效的阅读Linux内核设备驱动

内核开发在很大程度上并不是重新造“轮子”的过程,而是深入理解并尽量复用现有的内核设计框架,然后参照相似的功能模块去添加或改写某项需要的功能。在对内核整体框架以及某些子系统融会贯通以后,我们才有可能站在巨人的肩膀上去改进框架本身,实现自主创新。如果过分强调不必要的“自主创新”,可能会让内核的可维护性变差,最终结果反而得不偿失。 那么此次就分享就围绕如何高效的阅读内核驱动代码:

内核笔记 7341

什么是事务?事务的四个特征(ACID)

一、什么是事务?         **事务(Transaction)是访问并可能更新数据库中各项数据项的一个程序执行单元(unit)。**事务由事务开始(begin transaction)和事务结束(end transaction)之间执行的全体操作组成。         事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结

qq_44290077的博客 2万+

Unity之OpenXR+XR Interaction Toolkit实现 Gaze眼部追踪

在虚拟现实(VR)和增强现实(AR)应用中,眼动追踪是一项强大而受欢迎的技术。它可以让开发者更好地理解用户的注意力和行为,并创造出更加沉浸和智能的体验。在本文中,我们将探讨如何使用 Unity OpenXR 实现Gaze眼部追踪功能。

TxNet 1751

【第1章】基于FPGA的图像形态学处理学习教程——目录

本课程介绍图像形态学处理技术,通过腐蚀、膨胀、开运算、闭运算等算子对图像进行优化。腐蚀可去除边缘杂色使线条更清晰,膨胀能填补缺口修复图像,开运算擅长去噪,闭运算则用于修补断裂。课程内容涵盖四大形态学处理的理论分析、MATLAB仿真和FPGA开发实现,包括腐蚀、膨胀、开闭运算以及顶帽变换等操作,最后探讨形态学处理的实际应用场景。通过仿真测试和FPGA开发实践,帮助学员掌握图像"美容塑型"的核心技术。

MATLAB,verilog,python,opencv,tensorflow,caffe,C,C++ 338

(数据库)事务是什么以及事务的四大特性

一、事务的概念 事务:是数据库操作的最小工作单元,是作为单个逻辑工作单元执行的一系列操作;这些操作作为一个整体一起向系统提交,要么都执行、要么都不执行;事务是一组不可再分割的操作集合(工作逻辑单元); 二、事务的四大特性: 1 、原子性 事务是数据库的逻辑工作单位,事务中包含的各操作要么都做,要么都不做 2 、一致性 事 务执行的结果必须是使数据库从一个一致性状态变到另一...

ludan_xia的博客 2817

高速特征金字塔多角度旋转模板匹配(工业零部件缺陷检测C++ Opencv版)

博主在性能较好的笔记本上测试算法全部执行效果大约为45ms,在一般配置的笔记本上博主在性能较好的笔记本上测试算法全部执行效果大约为130ms。下图即为实际检测效果。本文最后附有完整代码:Qt版和MFC版本(可直接运行)。...

认真努力,做一只会飞的毛毛虫。 5547

事务的四个特性以及四个隔离级别

数据库中的**事务**有四大特性(**ACID**),分别是原子性、一致性、隔离性和持久性。针对隔离性,还有四个隔离级别,分别是串行化、可重复读、读已提交和读未提交。这四个隔离级别是针对并发事务中存在的三个问题,分别是脏读、不可重复读和幻读。

三明治文鱼的博客 3万+

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

javaee 事务 事务的特性 事务的并发问题 事务的隔离级别

是并发控制的单元,是用户定义的一个操作序列。这些操作要么都做,要么都不做,是一个不可分割的工作单位。通过事务,sql 能将逻辑相关的一组操作绑定在一起,以便服务器 保持数据的完整性。事务通常是以begin/start transaction开始,以commit或rollback结束。Commint表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据的更新写回到磁盘上的物理数据库中去,事务正常结束。

道友 1216

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

数据库事务与事务隔离级别

事务简单说将一串操作看成一个整体,只有当这串操作全部执行成功的时候才成功,只有有一个操作出错就失败,回滚到操作开始之前。这一串操作就是事务。比如张三给李四转账100块这件事有三个步骤,查询张三余额,张三自己账户先扣一百块,然后李四账户获得一百块。如果张三扣款成功,但李四获得一百块失败,那么不是转账失败,凭空损失了100块?或者张三扣款失败,但李四获得一百块成功,那张三不是凭空赚了100块?

bjjx123456的博客 1049

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

什么是事务和并发

现在有两个会话(注意是两个链接(connection),而不是同一个会话下的两个SQL标签,这两个链接相当于是在模拟两个用户)都要执行这段语句,用调试逐句执行, 当第一个执行到UPDATE 而还没有 COMMIT 提交时,转到第二个会话,执行到UPDATE语句时会一直等待执行(若等的时间太久会超时而放弃执行),这时跳回第一个对话 COMMIT 提交,第二个会话的 UDDATE 才执行成功,最后将第二段对话的事务也COMMIT提交,此时刷新顾客表会发现1号顾客的积分多了20分。换成 ROLLBACK;

boluomi的博客 1562

理解数据库之事务与其隔离级别

一、事务的四大特性 原子性 原子性是指事务包含的操作要么全部成功,要么全部失败回滚。 一致性 一致性是指事务必须使数据库从一个一致性状态变换为另一个一致性状态,也就是说事务执行之前和执行之后都必须处于一致性状态。以A、B两个用户转账为例,无论如何转账,两个用户的总金额和是不变的。 隔离性 隔离性是指当多个用户访问数据库时,比如操作同一张表时,数据库为每一个用户开启的事务,不能被其他事务所干扰,多...

keYuK0的博客 334

SQL中数据库事务的四大特性以及事务的隔离级别

一.  四大特性: 1.原子性(Atomicity) 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。 2.一致性(Consistency)     一致性是指事务必须使用数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行后都必须处于一致性的状态。 3.隔离性(Is

gengzhi1293443962的博客 3021

事务的四个特性、四个隔离级别以及数据库的常用锁

事务的四大特性,通常被称为ACID特性,是数据库管理系统(DBMS)确保事务处理的关键属性。

m0_72075879的博客 1400

事务提交 commit 会失败么_【十一章】事务和并发

Mosh_完全掌握SQL课程_学习笔记数据概要【十一章】事务和并发Transactions and Concurrency (时长49分钟)1. 事务Transactions (2:44)事务事务(trasaction)是完成一个完整事件的一系列SQL语句。这一组SQL语句是一条船上的蚂蚱,要不然都成功,要不然都失败,如果一部分执行成功一部分执行失败那成功的那一部分就会复原(revert)以保持数...

weixin_39701834的博客 629

事务的四大特性

事务的特性 事务的四大特性:原子性、一致性、隔离性、持久兴; 原子性 事务的原子性是指事务必须是一个原子的操作序列单元。事务中包含的各项操作在一次执行过程中,只允许出现两种状态之一,要么都成功,要么都失败。 任何一项操作都会导致整个事务的失败,同时其它已经被执行的操作都将被撤销并回滚,只有所有的操作全部成功,整个事务才算是成功完成。 一致性 事务的一致性是指事务在执行不能破坏数据库数据的完整性和一致性,一个事务在执行之前和执行之后,数据库都必须处以一致性状态。 比如:张三给李四转钱,不可能张三被扣了

weixin_45730866的博客 1万+

数据库笔记4---事务特性ACID、隔离级别、事务并发问题小结

目录一、什么是事务二、事务的四个特性(ACID)1. 原子性(Atomicity)2. 一致性(Consistency)3. 隔离性(Isolation)4. 持久性(Durability)三、隔离级别和并发问题1.丢失更新2.脏读3.幻读(phantom read,也叫虚读)4.不可重复读四、事务的隔离级别1. 未提交读(Read uncommitted)2.提交读(Read committed...

麦田里的码农 834

事务的四个特性

⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency)  一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。  拿转账来...

不张扬。 577

事务隔离级别详解

事务A查询某个范围的数据,事务B在期间插入或删除符合该范围的数据,导致事务A两次查询结果的行数不同。:事务A多次读取同一数据,事务B在期间修改并提交了该数据,导致事务A前后读取结果不一致。:事务A读取了事务B未提交的数据,事务B回滚后,事务A读取的数据无效。:行锁 + 间隙锁,防止其他事务在范围内插入新数据(解决幻读)。:不采用任何锁机制,直接读取最新数据(包括未提交的数据)。:事务修改数据时加排他锁(X锁),直到事务结束。:需要事务内多次读取一致的场景(如对账系统)。

qq_62112907的博客 905

事务特性和隔离级别

事务特性和隔离级别

CODEING一场空的博客 243
上一篇: 【Java基础之线程同步(三)】使用ReentrantLock Condition实现线程同步
下一篇: 【SQL之查询】MySQL查询今天、昨天、上周、近30天、去年等的数据的方法
cangchen
博客等级 码龄18年 108粉丝 28原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值