脏怎么读

脏怎么读,第1张

脏怎么读 什么是脏读?什么是不可重复读?

脏读脏读,我们在开发过程中应该会经常听说,一个事务中访问到了另外一个事务中未提交的数据;会话1和会话2开始;会话2做了一个update *** 作,修改了一个字段的值;会话1执行select,读到了这个字段;会话2执行commit;会话1也结束;如果会话2执行了commit的话,是没有什么问题的;但是如果会话2最后执行了rollback呢?不可重复读在一个事务内,多次对数据进行了读取,但是查询到的数据不一致;因为在多次查询之间,另外一个事务可能修改了数据;会话1和会话2开始;会话1执行select,读取到A表的X字段;会话2执行update,修改了A表的X字段;并commit;会话1执行select,又读取到A表的X字段;这时候X字段的值和上一次的不一样;会话1结束;虽然两次读取的值不一样,但是并没有什么错,因为确实被修改、而且已经提交了。

幻读还有一个名字叫做幻读,其实和不可重复读类似。

不可重复读,指一个事务内根据同一个查询条件查询,前后查询到的同一行记录的值不一样;幻读是指一个事务内,多次根据同个条件查出来的记录行数不一样;过程就不在这里写了,大家可以把会话2的update改成insert或delete。

我将持续分享Java开发、架构设计、程序员职业发展等方面的见解,希望能得到你的关注。

你好,脏读和不可重复读分别是数据库事物的两种错误情况,具体如下:脏读:事务A读到了事务B未提交的数据。

不可重复读:事务A第一次查询得到一行记录row1,事务B提交修改后,事务A第二次查询得到row1,但列内容发生了变化。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/bake/4225695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-10-27
下一篇 2022-10-27

发表评论

登录后才能评论

评论列表(0条)

保存