欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

db2 隔离级别-总结  

程序员文章站 2022-07-15 14:50:38
...
以下为自己总结:
假定有A、B两个事务,

在UR级别下:
A更新某数据,B更新被阻塞,查询可用。
A在事务中更新某数据,即使没有最后commit/rollback,B查询所得数据是A已经操作的数据,导致A如果rollback,B查询的数据不正确,出现脏数据。同理,可能出现“不可重复读”和“幻想”。


在CS级别下:
A更新,B进行读取阻塞(无论是否读取的是A所更新的数据),
A读取,B读取时更新数据,并提交,A再读取,两次结果不同,产生“不可重复读”。如果B是insert数据,将导致“幻像”。

在RS级别下:
A读取数据,B更新被阻塞,因此不会产生“不可重复读”;但B可以insert数据,因此产生“幻像”。
A更新数据,B所有操作被阻塞。——防止“不可重复读”
A新增数据,B所有数据被阻塞。——防止“不可重复读”

在RR级别下:
事务依次进行,所有现象都不会发生。