脏读???

《高性能MySQL》里有这么一段:

脏读???_第1张图片

 

那么,假设有如下场景,查询C应当会读到什么结果?

脏读???_第2张图片

A出对数据的更新,产生了一个新行m(版本号1),一个旧行(版本号1,删除标识1).B之前开始事务,系统版本号+1,为2,这是B的更新,产生了新行n(版本号2)和旧行m(删除标识2).C之前开始事务,系统版本号+1,为3。此时,C查询到新行n,其删除版本未定义,且其版本小于当前事务的版本号3。D可能失败,事务(版本号为2的)产生回滚。这是脏读吗?如何正确理解那一段文字?哪里理解错了?

你可能感兴趣的:(读)