Spring事务总结

Spring事务的ACID
事务的ACID分别指的是原子性、一致性、隔离性、持久性,spring事务中定义了如下属性用于实现事务的ACID特性

  • 事务名称
  • 隔离级别(4种)
    • ISOLATION_READ_UNCOMMITTED:运行B事务看到A事务未提交的数据,会造成脏读、不可重复读和幻像读。
    • ISOLATION_READ_COMMITTED:事务B只能看到其他事务已提交后的数据状态,解决的了脏读,会造成不可重复读+幻读
    • ISOLATION_REPEATABLE_READ:该级别解决了脏读、不可重复读,但是存在幻读,其解决不可重复读的原理如下:
      • select … from :该Repeatable-read的算法处理中,在同一个事物内多次读取,则取第一次读取时建立的快照版本
    • ISOLATION_SERIALIZABLE:这是事务的最高隔离级别,底层实现是通过对每一行读取的数据加共享锁(Lock in Share Mode)实现,容易造成事务超时与锁竞争
  • 超时时间
  • 是否只读(ReadOnly)
  • 传播机制(7种)
    • REQUIRED:存在事务则加入,不存在则新建
    • SUPPORT:存在事务则加入,不存在则以非事务执行
    • MANDATIORY:存在事务则加入,不存在则抛出异常
    • REQUIRES_NEW:存在事务则挂起,新建一个事务执行处理
    • NOT_SUPPORTED:存在事务则挂起ÿ
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页