springboot事务隔离级别
springboot有五种隔离级别
1、DEFAULT:spring默认的事务隔离级别,以连接的数据库事务隔离级别为准;
2、READ_UNCOMMITTED:读未提交,该隔离级别事务可以看到其他事务中未提交的数据。因为可以读到别人未提交的数据,如果对方事务发生回滚,容易导致脏读。
3、READ_COMMITTED:读已提交,该隔离级别事务能读到已经提交事务的数据,因此不会有脏读的问题,但容易导致不同时间相同SQL查询中,结果可能不同,导致不可重复读。这种更多是针对更新数据的情况。
4、REPEATABLE_READ:可重复读,能确保同一事物多次查询结果一致,但可能在此期间内,同样的查询条件,查询到数据条数不一样,导致好像出现了幻觉,故而有幻读问题,这种更多出现在数据的新增/删除的情况。
5、SERIALIZABLE:串行化,最高的事务隔离级别,他会强制事务排序,能解决所有的脏读、不可重复读和幻读问题,本质其实就是事务排队执行,也导致效率低,真正使用的场景不多。
spring boot中事务隔离级别可以通过@Transactional中的isolation属性进行设置,如下所示:
日常开发中,也不会特意去设置,通常都是按照数据库的默认事务隔离级别来,mysql的innodb是可重复读为默认的。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)