MySQL事务隔离级别和Spring事务隔离级别的联系

1、MySQL事务隔离级别

  1. 读未提交:该级别事务能够读取到其余未提交的事务,形成脏读。
  2. 读已提交:能读取到其余提交的事务,能够避免脏读,但可形成不可重复读与幻读。
  3. 可重复读:MySQL默认事务隔离级别,能够解决不可重复读,但没法阻止新插入的记录形成后者可能会查到前者没法查出的数据。
  4. 序列化:事务的最高隔离级别,全部事务串行执行,性能最差。

2、Spring事务隔离级别

  1. Isolation.Default:Spring:默认隔离级别,即采用数据库的隔离级别。
  2. Isolation.Read_Uncommit:事务未提交可读,会出现脏读。
  3. Isolation.Read_Commit:不可脏读,但会出现幻读和不可重复读。
  4. Isolation.Repeatable_Read:不可脏读,不可重复读,但会出现幻读。
  5. Isolation.Searializable:事务的最高隔离级别,全部事务串行执行。

3、Spring事务传播行为

  1. Required:若是当前存在事务会支持该事物,不存在则开启新的事务。
  2. Required_New:建立新的逻辑事务,表示每次都建立新的逻辑事务。
  3. Supports:支持当前事务,若是没有事务就会以非事务方式执行。
  4. Not_Support:以非事务方式执行,若是当前存在事务就暂停该事务,以非事务方式运行。
  5. Mandatory:支持当前事务,若是没有事务则抛出异常。
  6. Never:以非事务方式运行,若是有事务则抛出异常。
  7. Nested:嵌套事务支持,若是当前存在事务,则嵌套在事务内部执行,如不存在事务会新建事务,内部事务不影响外部事务,外部事务回滚则会致使内部事务回滚。
相关文章
相关标签/搜索