我可以理解我们应该避免脏读,因为如果我们读取未提交的数据,其他事务可能会回滚,但在不可重复和幻读中,我们正在读取已提交的数据。如果我们读取提交的数据,问题是什么。
最佳答案
如果有人告诉您他们的名字叫史蒂夫,然后 6 个月后您再次见到他们并告诉您他们的名字叫鲍勃,这有问题吗?事实上,在这段时间里,他们合法地更改了他们的名字,这意味着事实已经改变,对你来说可能重要,也可能不重要。但它可能发生这一事实至少是需要注意的。
就个人而言,我不倾向于编写依赖于在单个事务中重复查询相同数据的代码,因此没有任何特定不可重复读取给我带来问题的情况.但我知道它们是有可能的。数据已经提交的事实(就像我上面的名称更改类比一样,在这两次中,给定的名称都是我们正在与之交谈的实体的完全提交的名称)并不意味着它不能更改。
关于sql - 为什么要避免不可重复读和幻读?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50710722/