【笔记】 事务管理中的脏读, 幻读,不可重复读

来源:互联网 发布:linux如何安装程序 编辑:程序博客网 时间:2024/05/18 04:04

脏读

当一事务正改一行数据,提交或回滚前,另一事务可读此行数据。此即脏读,因第一事务可回滚,而致第二事务读无效数值。

例,线程一读一行,线程二正改其值。因事务隔离属性为READ UNCOMMITTED,其它可见其修改值。

帐号余额表,线程一正读,线程二正改,'READ UNCOMMITTED',其它线程可见 正修改值。


幻读

当一事务,同查询发生二次,第二次有数第一次不包含数据。此因其二事务间,第二事务插入新行数据。

例,一事务正插入数据,另一事务正读数据,若读方隔离级为 'READ COMMITTED', 当第二读时,将获新行数据。


不可重复读

同一事务中,同一查询得不同结果。此因其间,另一事务更新并提交数据。

例,一线程正读取数据,另一线程更新并提交数据,因事务隔离级为 'READ COMMITED', 因此同一事务中,不同读请求返回不同数据。

0 0