Spring事务隔离级别

Spring 事务隔离级别是指 Spring 如何去处理每个事务之间的关联,可用于防止一些数据错误

隔离级别

  1. TransactionDefinition.ISOLATION_DEFAULT [默认值]
    • 表示使用底层数据库的默认隔离级别,通常为 TransactionDefinition.ISOLATION_READ_COMMITTED
    • 数据库的隔离级别参见 MySQL 数据库隔离级别
  2. TransactionDefinition.ISOLATION_READ_UNCOMMITTED
    • 表示一个事务可以读取到另一个事务修改但还未提交的数据
    • 无法防止脏读、不可重复读、幻读
    • 不推荐使用
  3. TransactionDefinition.ISOLATION_READ_COMMITTED
    • 表示一个事务只能读取到另一个事务已经提交的数据
    • 可防止脏读
    • 推荐使用
  4. TransactionDefinition.ISOLATION_REPEATABLE_READ
    • 表示一个事务在整个过程中可以多次重复执行某个查询,并且每次返回的记录都相同
    • 可防止脏读、不可重复读
  5. TransactionDefinition.ISOLATION_SERIALIZABLE
    • 表示所有事务一次逐个执行,事务之间完全不可能产生干扰
    • 可防止脏读、不可重复读、幻读
    • 过于严密的隔离级别会严重影响系统性能
    • 不推荐使用