spring有五大隔离级别:默认值为ISOLATION_DEFAULT(使用数据库的设置),其他四个隔离级别和数据库的隔离级别一样:
1、ISOLATION_DEFAULT:用底层数据库的设置隔离级别,数据库设置的是什么我就用什么
2、ISOLATION_READ_UNCOMMITTED:读未提交,最低隔离级别、事务未提交前,就可被其他事务读取(会出现幻读、脏读、不可重复读)
3、ISOLATION_READ_COMMITTED:读已提交,一个事务提交后才能被其他事务读取到(会造成幻读、不可重复度),SQL server的默认级别
4、ISOLATION_REPEATABLE_READ:可重复读,一个事务提交后,并且另一个事务提交之后才可以读到上一个事务的值。mysql的默认隔离级别
5、ISOLATION_SERIALIZABLE:序列化,代价最高最可靠的隔离级别,该隔离级别能防止脏读、不可重复读、幻读。
脏读:表示一个事务能够读取到另一个事务还未提交的数据。比如,某个事务尝试插入记录A,此时该事务还未提交,然后另一个事务尝试读取到了记录A。
不可重复度:事务A多次读取同以数据,事务B 在事务A多次读取的过程中,对数据作了更新并提交,导致事务A多次读取同一数据时,结果不一致。
幻读:指同一个事务内多次查询返回的结果集不一样。比如同一个事务A第一次查询的时候有n条记录,但是第二次同等条件下查询却有n+1条记录,这就好像产生了幻觉。
相关文章
- 【十六】Spring Boot之事务(事务传播机制、嵌套事务、事务隔离机制详解)
- spring的事务隔离级别
- spring事务传播属性与隔离级别
- Spring的事务隔离级别
- 解决 Spring Boot 多数据源环境下事务管理器冲突问题(非Neo4j请求标记了 @Transactional 尝试启动Neo4j的事务管理器)-4. 解决方案
- Spring 事务隔离级别和传播行为
- Spring中propagation的7种事务配置
- 【Java面试系列】Spring Boot应用中的事务传播机制与分布式事务实践详解 - 3-5年Java开发必备知识
- Spring Boot的事务管理注解@EnableTransactionManagement的使用
- Spring事务详细解释,满满的都是干货!