事务隔离级别

事务的隔离级别,采用锁的机制实现http://www.iteye.com/topic/322382
脏读 不 可重复读 幻读

未提交读 :
不添加共享锁。所以其它trasaction B可以在trasaction A对记录的读取过程中修改同一记录,
可能会导致A读取的数据是一个被破坏的或者说不完整不正确的数据。
另外,在trasaction A中可以读取到trasaction B(未提交)中修改的数据。
比如trasaction B对R记录修改了,但未提交。此时,在Trasaction A中读取R记录,读出的是被B修改过的数据。
可能发生的问题:脏读。

提交读:
在trasaction A中读取数据时对记录添加共享锁,但读取结束立即释放。
其它transaction B对这个记录的试图修改会一直等待直到A中的读取过程结束,
而不需要整个trasaction A的结束。所以,在trasaction A的不同阶段对同一记录的读取结果可能是不同的。
可能发生的问题:不可重复读。


可重复读:
对于读出的记录,添加共享锁直到transaction A结束。
其它transaction B对这个记录的试图修改会一直等待直到trasaction A结束。
可能发生的问题:当执行一个范围查询时,可能会发生幻读。


序列化读:
添加范围锁(比如表锁,页锁等,关于range lock,我也没有很深入的研究),
直到transaction A结束。以此阻止其它trasaction B对此范围内的insert,update等操作。

你可能感兴趣的:(事务隔离级别)