暂无图片
分享
Oracle
2022-12-18
什么是幻读,脏读,不可重复读呢?

什么是幻读,脏读,不可重复读呢?

收藏
分享
8条回答
默认
最新
T
Ty3306

事务A、B交替执行,事务A被事务B干扰到了,因为事务A读取到事务B未提交的数据,这就是脏读

在一个事务范围内,两个相同的查询,读取同一条记录,却返回了不同的数据,这就是不可重复读。

事务A查询一个范围的结果集,另一个并发事务B往这个范围中插入/删除了数据,并静悄悄地提交,然后事务A再次查询相同的范围,两次读取得到的结果集不一样了,这就是幻读。

可以看我这篇文章哈:https://juejin.cn/post/6844904115353436174#heading-8

暂无图片 评论
暂无图片 有用 2
暂无图片
刘贵宾
2022-12-18
1.脏读:当前事务读取到了其它事务未提交的数据。 2.不可重复读:在一个事务中,查询结果是这个,当其它事务提交的时候,再查询发现结果变了,这种现象就是不可重复读。 3.幻读:事务A第一次查询得到一行记录a,事务B提交修改后记录b,事务A第二次查询得到两行记录,记录a和记录b。 4.可重复读:在一个事务中,别的事务提交了,查询结果和别的事务没提交前是一样的,查询结果不会变,这种现象叫做可以重复读。当本次事务提交了,再查询结果就会改变。
shunwahⓂ️
1.脏读:当前事务读取到了其它事务未提交的数据。 2.不可重复读:在一个事务中,查询结果是这个,当其它事务提交的时候,再查询发现结果变了,这种现象就是不可重复读。 3.幻读:事务A第一次查询得到一行记录a,事务B提交修改后记录b,事务A第二次查询得到两行记录,记录a和记录b。 4.可重复读:在一个事务中,别的事务提交了,查询结果和别的事务没提交前是一样的,查询结果不会变,这种现象叫做可以重复读。当本次事务提交了,再查询结果就会改变。
暂无图片 评论
暂无图片 有用 1
2022-12-18
ANSI/ISO SQL标准根据三种“现象”定义了4种隔离级别。
刘贵宾

1.脏读:当前事务读取到了其它事务未提交的数据。 2.不可重复读:在一个事务中,查询结果是这个,当其它事务提交的时候,再查询发现结果变了,这种现象就是不可重复读。 3.幻读:事务A第一次查询得到一行记录a,事务B提交修改后记录b,事务A第二次查询得到两行记录,记录a和记录b。 4.可重复读:在一个事务中,别的事务提交了,查询结果和别的事务没提交前是一样的,查询结果不会变,这种现象叫做可以重复读。当本次事务提交了,再查询结果就会改变。

暂无图片 评论
暂无图片 有用 4
游湖

什么是幻读,脏读,不可重复读呢?

暂无图片 评论
暂无图片 有用 3
游湖

1.脏读:当前事务读取到了其它事务未提交的数据。 2.不可重复读:在一个事务中,查询结果是这个,当其它事务提交的时候,再查询发现结果变了,这种现象就是不可重复读。 3.幻读:事务A第一次查询得到一行记录a,事务B提交修改后记录b,事务A第二次查询得到两行记录,记录a和记录b。 4.可重复读:在一个事务中,别的事务提交了,查询结果和别的事务没提交前是一样的,查询结果不会变,这种现象叫做可以重复读。当本次事务提交了,再查询结果就会改变。

暂无图片 评论
暂无图片 有用 6
游湖
答主
2022-12-18
查询结果和别的事务没提交前是一样的,查询结果不会变,这种现象叫做可以重复读
lelepapa
2022-12-18
高并发情况下,如何做到安全的修改同一行数据
L
lelepapa

查询结果和别的事务没提交前是一样的,查询结果不会变,这种现象叫做可以重复读

暂无图片 评论
暂无图片 有用 1
zhangyfr
脏读指的是读到了其他事务未提交的数据,未提交意味着这些数据可能会回滚,也就是可能最终不会存到数据库中,也就是不存在的数据。读到了并一定最终存在的数据,这就是脏读。
暂无图片 评论
暂无图片 有用 0
Oracle
问题已关闭: 问题已经得到解决
暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏