Spring事务隔离级别详解

news/2024/11/16 21:34:38/

Spring有五大隔离级别

1、ISOLATION_DEFAULT

2、ISOLATION_READ_UNCOMMITTED

3、ISOLATION_READ_COMMITTED

4、ISOLATION_REPEATABLE_READ

5、ISOLATION_SERIALIZABLE

ISOLATION_DEFAULT

用底层数据库的设置隔离级别。

ISOLATION_READ_UNCOMMITTED

一个事务可以读取到另一个事务未提交的事务记录。

缺点:会出现幻读、脏读、不可重复读。

脏读示例:

事务A,写入一条记录,同时,事务B读入数据,读到了这条记录,但是,之后事务A回滚。因此,事务B读到的数据不是有效的,这种情况称为脏读。

ISOLATION_READ_COMMITTED

一个事务只能读取到已经提交的记录,不能读取到未提交的记录。

缺点:会造成幻读、不可重复读。

不可重复读示例:

在事务A两次读取的过程之间,事务B修改了那条记录并进行提交。因此,事务A前后两次读取的记录不一致,这种情况称为不可重复读。

ISOLATION_REPEATABLE_READ

一个事务可以多次从数据库读取某条记录,而且多次读取的那条记录都是一致的,相同的。

缺点:会造成幻读。

幻读示例:

事务A两次从数据库读取一系列记录,期间,事务B插入了某条记录并提交。事务A第二次读取时,会读取到事务B刚刚插入的那条记录。在事务期间,事务A两次读取的一系列记录不一致,这种情况叫做幻读。

ISOLATION_SERIALIZABLE

序列化,代价最高最可靠的隔离级别。

缺点:会带来性能的下降。


http://www.ppmy.cn/news/60654.html

相关文章

Linux内核结构体“file_operations“ 初始化以及内存占用分析

01🙆‍♂️起因 在学习字符设备驱动的时候,看到Linux内核中的结构体的指定初始化方式(designated initializer)使用方式,之前没有见过这种初始化形式,做一点探索。 /* 字符设备操作集 */ static struct f…

【单目标优化算法】海鸥优化算法(Matlab代码实现)

💥 💥 💞 💞 欢迎来到本博客 ❤️ ❤️ 💥 💥 🏆 博主优势: 🌞 🌞 🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 …

数据埋点2

文章目录 1 数据埋点流程2 六个步骤实现数据埋点设计2.1 确认事件与变量2.2 明确事件的触发时机2.3 明确事件的上报机制2.4 设计数据表结构2.5 统一字段命名规范2.6 明确优先级 3 以电商购物成交转化为例实现数据埋点设计 作为数据分析师的你,是否和我一样经常会被业…

OI 数论模板总结

1.欧几里得算法 可以通过欧几里得算法求出最大公因子。 int gcd(int x, int y) //欧几里得算法 { return y0 ? x : gcd(y, x%y); }2.扩展欧几里得 可以通过扩展欧几里得求出 a x b y d axbyd axbyd 不定方程的一组整数解。( a , b , d a, b, d a,b,d为正整…

【热门框架】Mybatis-Plus入门介绍看这一篇文章就足够了

MyBatis-Plus 是在 MyBatis 的基础上进行了封装,提供了更加便捷的开发方式,具有简化开发、提高效率等优点。以下是 MyBatis-Plus 的一些特点和用法: 通用 CRUD 操作:MyBatis-Plus 提供了通用的 CRUD 接口,可以直接调用…

TinyJAMBU的制动原理——一种轻量化的认证密码

关于TinyJAMBU的定义和介绍在另一篇博文已经介绍过了,这里只对其动作原理进行描述和说明。 对应的博文链接如下:TinyJAMBU:一种轻量化密码介绍 首先,该密码是一个流密码体系的块密码框架。其加密模式整体上来看是块密码&#xff0…

Python 扩展教程(1): 调用百度AI

关于AI 自有计算机以来,人们就想让计算机具有人的感知、意识、概念、思维、行为,代替人的工作。AI (Artificial Interligence)是计算机科学的一个分支,专注研究、开发、模拟、扩展人的智能的理论、方法、技术及应用。 从研究领域和方法上&…

当音乐遇上Python:用Pydub自动分割音频

🎵 🎵 🎵 当音乐遇上Python:用Pydub自动分割音频 随着短视频应用的普及,越来越多人开始了解并尝试制作自己的短视频作品。而在制作短视频时,背景音乐的选择和使用也是非常重要的一步。很多人喜欢选择一首长…