事务的隔离级别和传播行为

Posted no-npe

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了事务的隔离级别和传播行为相关的知识,希望对你有一定的参考价值。

一、什么是事务隔离

  一个事务的执行不能被其他事务干扰。即一个事务内部的操作及使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能互相干扰。

 

五个事务隔级别:lsolation的属性值

1,default

默认的事务隔离级别

2,read_uncommitted

读未提交,一个事务可以操作另外一个未提交的事务,不能避免脏读,不可重复读,幻读,隔离级别最低,并发性 能最高

3,read_committed

读已提交,一个事务不可以操作另外一个未提交的事务, 能防止脏读,不能避免不可重复读,幻读。

4,repeatable_read

能够避免脏读,不可重复读,不能避免幻读

5,serializable

隔离级别最高,消耗资源最低,代价最高,能够防止脏读, 不可重复读,幻读。

 

二、什么是事务传播

  在两个业务之间如何共享事务

 

七个事务的传播行为 :propagation的属性值

1,propagation_required

如果一个事务存在,则支持当前事务,如果不存在,则创建新的事务

2,propagation_supports

如果一个事务存在,则支持当前事务,如果不存在,则非事务的方法运行

3,propagation_mendatory

如果一个事务存在,则支持当前事务,如果存在,则抛出异常

4,propagation_requires_new

总是要开启一个新的事务,如果事务存在,将该事务挂起

5,propagation_not_supported

总是非事务方法运行,并挂起所有的事务

6,propagation_never

总是非事务方法运行,如果事务存在则抛出异常

7,propagation_nested

某一个事务存在,则运行在一个嵌套的事务中

以上是关于事务的隔离级别和传播行为的主要内容,如果未能解决你的问题,请参考以下文章

理解 spring 事务传播行为与数据隔离级别

事务的隔离级别和传播行为

Spring中五个事务的隔离级别和七种传播行为

Spring事务隔离级别与传播行为

Spring事务隔离级别与传播行为

SPRING事务传播行为数据隔离级别