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

孤街醉人 提交于 2020-01-07 13:20:06

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

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

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

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

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

 

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

 

隔离级别越高,性能越低

 

 

参考博客:

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!