五种隔离级别(其实是四种,但是有一种默认的也要单独记)
首先复习一下事务的四个特性ACID:
ACID特性:原子性(操作不可分割),一致性,隔离性(多个事务并发时不会导致数据不一致),持久性(对数据的修改是永久的)
脏读:一个事务读取到另一事务未提交的更新数据
不可重复读:一个事务期间两次读到同一个数据不一致
幻读:读取的数据的行数有问题
可重复读:当使用可重复读隔离级别时,在事务执行期间会锁定该事务以任何方式引用的所有行。因此,如果在同一个事务中发出同一个SELECT语句两次或更多次,那么产生的结果数据集总是相同的。因此,使用可重复读隔离级别的事务可以多次检索同一行集,并对它们执行任意操作,直到提交或回滚操作终止该事务。
如何解决幻读:间隙锁
七种事务传播行为
保证在同一个事务中
PROPAGATION_REQUIRED:支持当前事务,如果不存在 就新建一个(默认)