在阐述隔离级别之前,先详细的介绍三个概念:
脏读:
脏读又称无效数据的读出,是指在数据库访问中,事务T1将某一值修改,然后事务T2读取该值,此后T1因为某种原因撤销对该值的修改,这就导致了T2所读取到的数据是无效的。
比如说银行卡转账,A向B转5000元。对于数据库方面的操作是A的账户减少5000,B的账户增加5000.当A给B转帐后,B的账户先增加5000,此时,B去查看账户,发现钱已经收到。然后A的账户要减少5000,但是在减少5000的时候发生了点问题,导致事务回滚。B中增加的5000也就消失了。但是B由于刚才查过账户,认为已经转账成功了。
不可重复读:
是指在数据库访问中,一个事务范围内两个相同的查询却返回了不同数据。这是由于查询时系统中其他事务修改的提交而引起的。比如事务T1读取某一数据,事务T2读取并修改
了该数据,T1为了对读取值进行检验而再次读取该数据,便得到了不同的结果。
比如说,有一张银行卡内存款5000.小A先查询卡内有5000余额,于是想去银行取出来。小A的女朋友在网上看上了一件衣服。通过银行卡购买了衣服,消费了1000元。等到小A去银行准备取出5000时,发现银行卡内只有4000元
幻读:
幻读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改&#