事务的隔离机制与传播+mvcc

一:事务特性:原子、隔离、持久、一致

二:事务隔离级别共四种,隔离的程度由低至高就是:

1)READ-UNCOMMITTED(读取未提交内容)级别

还没提交就可读,可能结果回滚,脏读

 

2)READ-COMMITTED(读取提交内容)级别

提交了后,读取的内容不一致,不可重复读

 

3)REPEATABLE-READ(可重读)级别

读完了,又加了一条,幻读,偏重于增删

 

4)SERIERLIZED(串行化) 。

三:2和3都是使用mvcc的机制,使用版本号控制,对于select不同,2是生成很多版本号,3是对于读只有一个版本号

 

事务传播行为类型

说明

PROPAGATION_REQUIRED

如果当前没有事务,就新建一个事务,如果已经存在一个事务中,加入到这个事务中。这是最常见的选择。

PROPAGATION_SUPPORTS

支持当前事务,如果当前没有事务,就以非事务方式执行。

PROPAGATION_MANDATORY

使用当前的事务,如果当前没有事务,就抛出异常。

PROPAGATION_REQUIRES_NEW

新建事务,如果当前存在事务,把当前事务挂起。

PROPAGATION_NOT_SUPPORTED

以非事务方式执行操作,如果当前存在事务,就把当前事务挂起。

PROPAGATION_NEVER

以非事务方式执行,如果当前存在事务,则抛出异常。

PROPAGATION_NESTED

如果当前存在事务,则在嵌套事务内执行。如果当前没有事务,则执行与PROPAGATION_REQUIRED类似的操作。

posted @ 2021-08-16 21:47  李凌飞  阅读(60)  评论(0编辑  收藏  举报