读取变得“脏” - SQL隔离级别

时间:2014-03-21 03:04:28

标签: mysql sql database

哪个SQL事务隔离级别可以防止读取在事务中途变脏?

例如,采用两个交易的时间表T1和T2:

T1 Reads A, T2 Reads A, T1 Writes to A, T1 Commits*, T2 Writes to A, T2 Commits

在出现星号命令T1提交后,T2读取的值有点“脏”。它在读取时读取了已提交的值(假设在事务提交之前很久还有一些值为A),但该值不再反映A中的内容。是否有任何隔离级别可以防止这种情况发生?它不是一个脏读,因为在读取时,A的值是一个承诺值。但是如果T1和T2都更新A的值,让我们说,在它的值上加20,那么这个计划结束时的结果是不正确的......只有“可序列化”可以防止这种情况,还是其他任何一种?我不认为Repeatable Read会因为没有重复读取,但我不确定......

0 个答案:

没有答案