什么是脏读,为什么会产生脏读。

本文探讨了数据库中的脏读现象,脏读发生于当一个事务读取了另一个未提交事务修改的数据。在数据库操作中,数据先被加载到内存的缓冲区,如果事务B修改并提交数据,而事务A在事务B提交前读取了数据,但事务B异常回滚,导致A读取的数据变为无效。这种情况下,事务的隔离性就显得至关重要。
摘要由CSDN通过智能技术生成

       这里我依旧是浅谈,脏读很好解释,就是B读取了A还没有提交的事务。

      但是为什么会产生脏读?这里就得是事务的隔离性那些,但是我这里不说这个,我从存储方面说说,数据库的数据存在磁盘中,当你读取数据时,这一小部分数据就会复制到一个缓冲区(也就是内存) 中,读取数据的时候会先去内存中寻找,如果没有再去磁盘中寻找,然后脏读的原因也在这里,B读取了 内存中的一条数据,(然后要对他进行修改,只要他执行了修改,内存中的数据就改变了,之后提交事务后就会被持久化到数据库,否则就回滚了),也恰恰是这个时候,A来读取了同一条数据,肯定也是从内存中读取的 ,但是读取的是被B修改过的数据,但是这个时候B这个事务有异常了,回滚了,数据没有持久化到磁盘,没有发生变化,但是A刚才读了B没有持久化的数据,也就是错误的数据,这就是我理解的脏读。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值