【发布时间】:2014-04-15 15:53:17
【问题描述】:
从我读到的分析事务的基本方法是冲突可序列化的概念。
所以数据库系统必须通过这种方式保证事务的调度等价于可序列化。
但在这个简单的例子中,我看不出这个模型是如何工作的。
假设如下:
T1
READ(A)
A = A - 50
WRITE(A)
和事务2:
T2
READ(A)
A = A - 50
WRITE(A)
根据冲突可串行化,只有WRITE(A) 有冲突。但除此之外或可能的执行可能是:
T1 和 T2 同时做READ(A)。结果,每个人都读取了原始值。所以最终结果是A - 50,而不是A -50 -50,这是串行执行的结果。
所以从我的角度来看,这 2 个读取 是冲突的(但冲突等效理论认为它们不冲突)
所以我不明白该方法如何涵盖这个基本示例,而且这是具有 REPEATABLE READ 隔离级别的数据库中的标准执行。
【问题讨论】:
标签: mysql sql concurrency transactions isolation-level