Spring框架支持的事务隔离级别与标准的JDBC隔离级别保持一致,共包括五大隔离级别,它们分别是:DEFAULT(默认隔离级别)、READ_UNCOMMITTED(读未提交)、READ_COMMITTED(读已提交)、REPEATABLE_READ(可重复读)和SERIALIZABLE(可串行化)。这些隔离级别在数据一致性和并发性能之间进行了权衡,以满足不同业务场景的需求。
1. DEFAULT(默认):就是使用数据库的默认隔离级别,数据库怎么默认,Spring就怎么来,不用自己设置。
2. READ_UNCOMMITTED(读未提交):就像你偷看别人的日记,别人还没写完你就看了。在这个隔离级别下,一个事务可以读取另一个事务尚未提交的数据,这可能会导致“脏读”问题。
3. READ_COMMITTED(读已提交):就像你等别人写完日记再去看。在这个隔离级别下,一个事务只能读取另一个事务已经提交的数据,这样可以避免“脏读”问题,但仍可能发生“不可重复读”和“幻读”问题。
4. REPEATABLE_READ(可重复读):就像你每次看别人的日记内容都一样,别人不能在你读的时候改。在这个隔离级别下,一个事务可以多次读取同一数据并获得相同的结果,即使其他事务已经修改并提交了数据,这样可以避免“脏读”和“不可重复读”问题,但仍可能发生“幻读”问题。
5. SERIALIZABLE(串行化):就像你和别人约定好,一个人看完日记另一个人才能看。在这个隔离级别下,事务被强制按顺序执行,这样可以完全避免“脏读”、“不可重复读”和“幻读”问题,但性能可能会比较差。
标签:事务,隔离,READ,Spring,并发,脏读,提交,级别 From: https://blog.csdn.net/qq_44378083/article/details/145241556