您的位置:首页 > 其它

脏读、幻读、不可重复读

2018-03-18 10:42 169 查看
脏读:当事务A正在访问数据并且做了修改(‘工资2000元’改成‘工资3000元’),但是还没来得及提交,这是事务B来访问数据并且使用了该数据(‘工资2000元’)。
事务B太猴急了,用的数据是过期的,后来的人用的都是‘工资3000元’,就它是‘工资2000元’

不可重读:在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的的数据可能是不一样的
比如,singo拿着工资卡去消费,系统读取到卡里确实有2000元,而此时她的老婆也正好在网上转账,把singo工资卡的2000元转到另一账户,并在 singo之前提交了事务,当singo扣款时,系统读取到singo的工资卡已经没有钱,扣款失败,singo十分纳闷,明明卡里有钱,为 何......

幻读:是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样
比如,singo的老婆工作在银行部门,她时常通过银行内部系统查看singo的信用卡消费记录。有一天,她正在查询到singo当月信用卡的总消费金额为80元,而singo此时正好在外面胡吃海塞后在收银台买单,消费1000元,即新增了一条1000元的消费记录,并提交了事务,随后singo的老婆将singo当月信用卡消费的明细打印到A4纸上,却发现消费总额为1080元,singo的老婆很诧异,以为出 现了幻觉
更详细:http://blog.csdn.net/JIESA/article/details/51317164
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: