面试备考:事务隔离级别与传播机制有何不同?
- 内容介绍
- 文章标签
- 相关推荐
本文共计1685个文字,预计阅读时间需要7分钟。
1. 事务隔离级别+事务隔离级别是控制事务并发执行的一种机制,4. 特性中隔离性是整体体现,使用隔离级别可以控制事务在同时执行时的某些行为。例如,有两个事务同时操作同一张表,此时有一个事务在执行。
1、事务隔离级别
事务隔离级别是对事务 4 大特性中隔离性的具体体现,使用事务隔离级别可以控制并发事务在同时执行时的某种行为。
比如,有两个事务同时操作同一张表,此时有一个事务修改了这张表的数据,但尚未提交事务,那么在另一个事务中,要不要(或者说能不能)看到其他事务尚未提交的数据呢?
这个问题的答案就要看事务的隔离级别了,不同的事务隔离级别,对应的行为模式也是不一样的(有些隔离级别可以看到其他事务尚未提交的数据,有些事务隔离级别看不到其他事务尚未提交的数据),这就是事务隔离级别的作用。
Sping 中的事务隔离级别有 5 种,它们分别是:
所以,相比于 MySQL 的事务隔离级别,Spring 中多了一种 DEFAULT 的事务隔离级别。 事务隔离级别与问题的对应关系如下:
- 脏读:一个事务读取到了另一个事务修改的数据之后,后一个事务又进行了回滚操作,从而导致第一个事务读取的数据是错误的。
- 不可重复读:一个事务两次查询得到的结果不同,因为在两次查询中间,有另一个事务把数据修改了。
- 幻读:一个事务两次查询中得到的结果集不同,因为在两次查询中另一个事务有新增了一部分数据。
Spring 中,事务隔离级别可以通过 @Transactional(isolation = Isolation.DEFAULT) 来设置。
2、事务传播机制
Spring 事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的。 Spring 事务传播机制可使用 @Transactional(propagation=Propagation.REQUIRED) 来设置,Spring 事务传播机制的级别包含以下 7 种:
以上 7 种传播机制,可分为以下 3 类:
总结
从上述的介绍中可以看出,事务隔离级别描述的是多个事务同时执行时的某种行为,它们的调用流程如下:
而事务传播机制是描述,多个包含了事务的方法在相互调用时事务的传播行为,它们的调用流程如下:
所以事务隔离级别描述的是纵向事务并发调用时的行为模式,而事务传播机制描述的是横向事务传递时的行为模式。
本文共计1685个文字,预计阅读时间需要7分钟。
1. 事务隔离级别+事务隔离级别是控制事务并发执行的一种机制,4. 特性中隔离性是整体体现,使用隔离级别可以控制事务在同时执行时的某些行为。例如,有两个事务同时操作同一张表,此时有一个事务在执行。
1、事务隔离级别
事务隔离级别是对事务 4 大特性中隔离性的具体体现,使用事务隔离级别可以控制并发事务在同时执行时的某种行为。
比如,有两个事务同时操作同一张表,此时有一个事务修改了这张表的数据,但尚未提交事务,那么在另一个事务中,要不要(或者说能不能)看到其他事务尚未提交的数据呢?
这个问题的答案就要看事务的隔离级别了,不同的事务隔离级别,对应的行为模式也是不一样的(有些隔离级别可以看到其他事务尚未提交的数据,有些事务隔离级别看不到其他事务尚未提交的数据),这就是事务隔离级别的作用。
Sping 中的事务隔离级别有 5 种,它们分别是:
所以,相比于 MySQL 的事务隔离级别,Spring 中多了一种 DEFAULT 的事务隔离级别。 事务隔离级别与问题的对应关系如下:
- 脏读:一个事务读取到了另一个事务修改的数据之后,后一个事务又进行了回滚操作,从而导致第一个事务读取的数据是错误的。
- 不可重复读:一个事务两次查询得到的结果不同,因为在两次查询中间,有另一个事务把数据修改了。
- 幻读:一个事务两次查询中得到的结果集不同,因为在两次查询中另一个事务有新增了一部分数据。
Spring 中,事务隔离级别可以通过 @Transactional(isolation = Isolation.DEFAULT) 来设置。
2、事务传播机制
Spring 事务传播机制是指,包含多个事务的方法在相互调用时,事务是如何在这些方法间传播的。 Spring 事务传播机制可使用 @Transactional(propagation=Propagation.REQUIRED) 来设置,Spring 事务传播机制的级别包含以下 7 种:
以上 7 种传播机制,可分为以下 3 类:
总结
从上述的介绍中可以看出,事务隔离级别描述的是多个事务同时执行时的某种行为,它们的调用流程如下:
而事务传播机制是描述,多个包含了事务的方法在相互调用时事务的传播行为,它们的调用流程如下:
所以事务隔离级别描述的是纵向事务并发调用时的行为模式,而事务传播机制描述的是横向事务传递时的行为模式。

