脏读和幻读

脏读(强调同一事务,两次,未提交)
脏读是指当一个事务正在访问数据,并且对数据进行了修改。而这种修改还没有提交到数据库中,这时,另一个事务也访问这个数据,然后使用了这个数据
例子:
1.财务将张三的工资从1000修改成了8000(但未提交事务)
2.此时张三读取了自己的工资,发现变成了8000
3.财务发现操作有误,回滚了事务,张三的工资又变成了1000.此时张三读取到的就是一个脏数据

幻读(重点在于增加和删除)
指当事务不是独立执行时发生的一种现象。一个事务先后读取一个范围的记录,但两次记录数不同,中间有别的事务新增或删除,强调的是范围,记录和增删
例子:
目前公司员工工资为1000的有10人
1.事务1读取所有的员工工资为1000的员工
2.这时事务2向employee表插入了一条员工记录,工资也为1000
3.事务1再次读取所有工资为1000的员工,共度取了11条记录
解决方法:在操作事务完成数据处理之前,任何其他事务都不可以添加新数据

可重复读(重点是修改)
同样的条件,你读取过的数据再次读出来发现至不一样,强调的是同一事务,两次,提交

posted @ 2020-11-17 15:19  走过路过哭过  阅读(196)  评论(0)    收藏  举报