当前位置: 首页 > 网络应用技术

一致性观点何时建立?

时间:2023-03-06 00:51:07 网络应用技术

  在上一篇文章中,涉及一个小问题,数据库事务的一致性何时建立?

  这个问题相对重要。如果我们不弄清楚,它可能会影响我们的实验结果,然后得出错误的结论,因此今天Song Brother与您简要介绍了这个话题。

  让我给你一个错误的演示。

  我们打开两个会话窗口,默认情况下可以重复读取隔离级别。让我们看一下:

  首先查看A会议中的当前用户表,并在检查后开始交易:

  您可以看到当前年龄为101。

  接下来,修改B会议中的年龄:

  可以看出,B对话已成功修改。

  接下来回到A对话查询记录:

  可以看出,会议的记录也发生了变化。完整的测试过程如下:

  你能反复阅读吗?

  有理由重复阅读的原因是,其他交易的运作不会影响当前的交易,但是上述情况似乎是重复阅读并通过我们理解的重复阅读而退出。

  我不知道朋友是否仍然记得重复阅读的特征:

  从这个角度来看,第一部分似乎没有问题,因为我们在A会话中多次执行了Select语句,并且发现的结果是相同的。年龄为102。

  但是我们对Mingming B的对话的事务感到困惑,但是我们阅读了A会议中B的修改。这似乎不是。

  它在这里涉及一个问题。交易的一致性何时建立?

  实际上,我们执行的开始声明不是交易的真正起点。执行开始后,将启动执行的第一个句子SQL。

  让我们修改第一部分的情况:

  在A会议上,交易打开后,立即执行了选择语句,然后参加B会议进行修改。修改完成后,结果也与用户一致,以在另一笔交易中多次执行相同的选择语句,并且结果始终相同。

  如果我们要执行开始,我们会立即打开交易,然后我们可以通过以下方式执行它:

  执行此SQL后,交易立即开始。

  接下来,返回第一部分的情况,让我们修改事务的命令:

  目前,会议中对交易的查询无法看到B中的修改。

  好吧,一个小案例,我希望小朋友在进行实验时不应犯错误。这篇文章涉及一个称为一致性视图的概念。如果您不熟悉,则可以参考上一篇文章。