数据库并发事务存在的三个问题(脏读不可重复读幻读)

Posted jkwll

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库并发事务存在的三个问题(脏读不可重复读幻读)相关的知识,希望对你有一定的参考价值。

如果不考虑事务隔离性,可能会发生以下情况

脏读:事务a,读到了事务b未提交的数据,如果事务a读到了事务b的一些中间数据,待处理的数据。b事务数据还没有提交,就被a事务访问了

(解决方法:将 读未提交 级别提高到 读已提交 例如:orale在事务a 更新t表的时候,表t为锁住的状态,事务a未提交之前,事务b就不能访问t表)

不可重复读:指的是事务两次读取数据不一样。因为中间被其他事务修改了。解决方法就是 将 级别提高到 可重复。使用行级锁,锁定当前记录,其它事务无法更改。针对update操作

幻读:一个事务在查询,另一个事务在做插入或者删除,此时就会出现幻读。导致表的总行数不一致的情况

 

事务的干扰级别:读未提交、读已提交、可重复读、串行化。

 

参考博客:

https://blog.csdn.net/fanzhigang0/article/details/93198059

以上是关于数据库并发事务存在的三个问题(脏读不可重复读幻读)的主要内容,如果未能解决你的问题,请参考以下文章

何为脏读不可重复读幻读

[MySQL]对于事务并发处理带来的问题,脏读不可重复读幻读的理解与数据库事务隔离级别 - 分析脏读 & 不可重复读 & 幻读

什么是脏读不可重复读幻读?一文带你搞定MySQL事务隔离级别

什么是脏读不可重复读幻读?一文带你快速搞定MySQL事务隔离级别

MySQL 基础 事务 -- 事务简介事务操作事务四大特性(原子性一致性隔离性持久性)并发事务问题(不可重复读脏读幻读)事务隔离级别(解决并发事务问题)

MySQL理论:脏读不可重复读幻读