问题描述
简介:
我一直在研究交易之间可能发生的干扰类型。
我无法理解“幻读”和“不可重复读”之间的区别。
在这个 post 中,我看到了一条评论,他们说:
不可重复读取是指您提交的事务读取更新 来自另一笔交易。同一行现在具有不同的值 它在您的交易开始时发生。
幻读类似,但从提交的INSERTS读取时 和/或从另一笔交易中删除。有新行或行 自从您开始交易后就消失了。
我的问题:
- 情况:
T1: UPDATE table1 SET column1 = 5 WHERE user = 2;
T2.1: SELECT * FROM table1 WHERE column1 > 3; SELECT * FROM table1 WHERE column1 > 3;
-
问题:
- 即使是“更新”,T1 也不会在 T2 上导致“幻读” 陈述?我在 T2 中的第一个“SELECT”不会考虑行 user = 2 如果“column1”在“UPDATE”之前小于 3。但我的 T2 中的第二个“SELECT”会这样做。这不是“幻读”吗? 不是由“插入”或“删除”引起的?
- 这是“幻读”/“不可重复读”/“两者”吗?
- 我该如何理解?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)