您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

深入Spring数据库事务管理(二)

bubuko 2022/1/25 20:09:11 java 字数 2369 阅读 584 来源 http://www.bubuko.com/infolist-5-1.html

数据库的相关知识1.数据库事务ACID特性原子性(Atomicity):说的是一个事物内所有操作共同组成一个原子包,要么全部成功,要么全部失败。这是最基本的特性,保证了因为一些其他因素导致数据库异常,或者宕机。一致性(Consistency):数据库事物的一致性就规定了事物提交前后,永远只可能存在事... ...

数据库的相关知识

1.数据库事务ACID特性

原子性(Atomicity):

说的是一个事物内所有操作共同组成一个原子包,要么全部成功,要么全部失败。这是最基本的特性,保证了因为一些其他因素导致数据库异常,或者宕机。

一致性(Consistency):

数据库事物的一致性就规定了事物提交前后,永远只可能存在事物提交前的状态和事物提交后的状态,从一个一致性的状态到另一个一致性状态,而不可能出现中间的过程态。也就是说事物的执行结果是量子化状态,而不是线性状态。

隔离性(Isolation):

事物的隔离性,基于原子性和一致性,因为事物是原子化,量子化的,所以,事物可以有多个原子包的形式并发执行,但是,每个事物互不干扰。

但是,由于多个事物可能操作同一个资源,不同的事物为了保证隔离性,会有很多锁方案,当然这是数据库的实现,他们怎么实现的,我们不必深究。

持久性(Durability):

持久性,当一个事物提交之后,数据库状态永远的发生了改变,这个事物只要提交了,哪怕提交后宕机,他也确确实实的提交了,不会出现因为

刚刚宕机了而让提交不生效,是要事物提交,他就像洗不掉的纹身,永远的固化了,除非你毁了硬盘。

2.隔离级别

隔离级别 脏读 不可重读 幻读
脏读
读/写提交 ×
可重复度 × ×
序列化 × × ×

2.1选择隔离级别和传播行为

从脏读到序列化,系统性能直线下降。在大部分场景下,企业会选择读/写提交的方式设置事务。

例如:@Transaction(propagation=Propagation.REQUIRED,isolation=Isolation.READ_COMMITTED)

注意@Transaction和@Transactional好像没啥区别。

2.2 传播行为

传播行为是指方法之间的调用事务策略的问题。

2020-02-29_185743

最常用的是REQUIRED,对于那些不支持事务的方法我们使用的不多,一般而言,企业比较关注的是REQUIRES_NEW和NESTED。

深入Spring数据库事务管理(二)

原文:https://www.cnblogs.com/xc-xinxue/p/12386905.html


如果您也喜欢它,动动您的小指点个赞吧

除非注明,文章均由 laddyq.com 整理发布,欢迎转载。

转载请注明:
链接:http://laddyq.com
来源:laddyq.com
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


联系我
置顶