mysql隔离级别

问题描述:

我对这里的文档有些困惑。我有一个交易,这mysql隔离级别

  1. 开始交易
  2. 做了一些更新
  3. 做一些选择
  4. 做一些更多的更新
  5. 提交

我想我的选择步骤以查看步骤中的更新结果,但我想能够回滚整个事情。

提交读似乎在暗示,选择只显示一个已经提交的数据,以及重复的读取似乎暗示所有后续选择将看到相同的数据,在第一次时存在选择 - 从而忽视我更新。 读取未提交似乎做的是正确的事情,但:“但可能会使用一个可能的早期版本的行” - 这也是不可接受的,因为我的选择必须看到我的更新结果。

可序列化真的是我唯一的希望吗?

我工作过的文档here

事务隔离级别只描述并发交易之间的相互作用。在任何隔离级别下,您在同一事务内更新的内容将在您从该事务中重新选择时更新。

您的案例中的正确隔离级别似乎是读取提交的,因此您可以在任何时候回滚,并且未提交的数据在其他事务中不可见。