事务并发-隔离级别

1.并发问题:

问题1:脏读(dirty read)

A事务读到B事务没有提交的数据,并且A来修改这个数据,如果恰巧B做事务的回滚,那么A事务读到的数据就是错误的

事务并发-隔离级别_第1张图片

问题2:不可重复读(unrepeatable read)

指的是A事务读取了B事务已经提交了的更改数据,假设A取款的过程中B向账户汇入100,A事务两次读取数据不一致。

事务并发-隔离级别_第2张图片

问题3:幻读(phantom read)

A事务读取B事务新增的数据,假设银行做在一个A事务中统计,在统计过程中B新增了用户,A的事务中两次统计不同。

事务并发-隔离级别_第3张图片

问题4:第一类更新丢失

事务并发-隔离级别_第4张图片

问题5:第二类更新丢失

事务并发-隔离级别_第5张图片

2.隔离级别

SQL92标准提供了4个隔离级别,会给我们自动的根据不同的事务的隔离级别加不同的锁。

事务并发-隔离级别_第6张图片

数据库的隔离级别越高,并发性就越差,性能就越低。

oracle的隔离级别默认是READ COMMITED

mysql的隔离级别默认是REPEATABLE READ

3.事务控制配置文件方式




    
    
        
        
        
        
    

    
    
        
    
    
    
        
            
            
            
            
        
    

    
    
        
        
        
        
    

    
        
    

    
        
    

 

你可能感兴趣的:(java,事务并发,隔离级别)