mysql隔离级别

时间:2009-10-06 08:49:17

标签: mysql concurrency transactions isolation-level isolation

我对这里的文档感到有点困惑。我有一个交易,

  1. 启动交易
  2. 做一些更新
  3. 做了一些选择
  4. 做更多更新
  5. 提交
  6. 我希望我的步骤 3 选择在步骤 2 中查看更新结果,但我希望能够回滚整个事情。

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

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

    我正在处理文档here

1 个答案:

答案 0 :(得分:2)

事务隔离级别仅描述并发事务之间的交互。使用任何隔离级别,当您从该事务中重新选择在同一事务中更新的内容时,将更新这些内容。

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