事务并发可能导致哪些问题

脏读(Dirty read)

在一个事务中读取到另一个事务已经修改但没有提交的数据。例如,事务A对数据进行了修改,但是还没有提交,这时事务B读取这个数据,然后事务A回滚,那么事务B取的数据无效。不符合一致性。

不可重复读(NonRepeatable Read)

既不能读到相同的数据内容,事务A读取到了事务B已经提交的修改数据(一个事务范围内两个相同的查询却返回了不同数据)。例如事务A先读取数据,然后事务B对该同一数据修改并提交,那么事务A再次读取该数据时,由于事务B对该数据的修改,事务A两次读到的的数据可能是不一样的。不符合隔离性。

幻读(Phantom Read)

事务A读取到了事务B已经提交的新增数据。在一个事务中,两次查询的结果不一致(针对的insert操作) 。例如事务A对一个表中的数据进行了修改,同时,事务B也修改这个表中的数据,这种修改是向表中插入一行新数据。那么,事务A的用户后面的操作发现表中还有没有修改的数据行,就好象发生了幻觉一样。不符合隔离性。

更新丢失(Update lose)

两个事务同时操作相同数据,后提交的事务会覆盖先提交的事务处理结果。通过乐观锁就可以解决。

更多精选文章
标签: 事务、提交、表中、修改、读取
一个创业中的苦逼程序员
笔试题


刷题


简历模板


AI算法


大数据


内推


推荐阅读:
阿里巴巴笔试面试大全
腾讯笔试面试大全
百度笔试面试大全
今日头条笔试面试大全
网易笔试面试大全
Google笔试面试大全
更多笔试面试大全
隐藏