脏读脏数据是什么意思?

rt 经常听到别人说,但不太知道这是什么意思,望各位解释下 谢谢。
 如果还有带脏的 术语 也可分享下 - -

事务之间的隔离级别问题

你当前事务读到了别的事务的未提交的数据,也就是不确定的数据。

比如余额100元,存入100元,那么此时是200元,但事务可能失败,回滚后余额还是100元
但如果脏读呢,就会读到那个200元了,这个200可是不确定的,如果那个事务提交成功,那么没影响,如果失败回滚,你这个事务可就麻烦喽。

就好像你妈妈答应给你10块钱 我知道了这个事情之后想跟你借五块 而后来你妈妈由于一个异常的原因没有给你钱 那我就脏读了

脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。

以下几个术语常见于数据库文章、论文。操作系统分析中亦有涉及。  

  脏读就是指当一个事务正在访问数据,并且对数据进行了修改,而这种修改还没有提交到数据库中,这时,另外一个事务也访问这个数据,然后使用了这个数据。因为这个数据是还没有提交的数据,那么另外一个事务读到的这个数据是脏数据,依据脏数据所做的操作可能是不正确的。

  不可重复读是指在一个事务内,多次读同一数据。在这个事务还没有结束时,另外一个事务也访问该同一数据。那么,在第一个事务中的两次读数据之间,由于第二个事务的修改,那么第一个事务两次读到的数据可能是不一样的。这样就发生了在一个事务内两次读到的数据是不一样的,因此称为是不可重复读。

  幻觉读是指当事务不是独立执行时发生的一种现象,例如第一个事务对一个表中的数据进行了修改,这种修改涉及到表中的全部数据行。同时,第二个事务也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,以后就会发生操作第一个事务的用户发现表中还有没有修改的数据行,就好象发生了幻觉一样。

"脏"数据,比如一个“脏”的页指的是在缓冲器高速缓存中被修改,但还没有被写入磁盘的
页。每次当一条S Q L语句引用一个页时,该页的引用计数器加1。缓冲器高速缓存被定期地扫
描,并将引用计数器除以4取整。如果结果是0,表明该页自从上次扫描以来被引用的次数少
于三次,于是为该页设置“脏”页指示器,这个指示器导致该页加入空闲列表。如果页被修
改,首先将它的修改写回磁盘;否则,该页将被简单地释放而不必写入磁盘。

脏数据在临时更新(脏读)中产生。事务A更新了某个数据项X,但是由于某种原因,事务A出现了问题,于是要把A回滚。但是在回滚之前,另一个事务B读取了数据项X的值(A更新后),A回滚了事务,数据项恢复了原值。事务B读取的就是数据项X的就是一个“临时”的值,就是脏数据。 

B就进行了脏读,B读取的"临时"的值就是脏数据!!

你再好好体会一下,就这样理解的。

来源:英超直播

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值