概述
MYSQL事务并发处理的问题:
- 脏读、
- 不可重复读、
- 幻读
MYSQL5.5.X的版本默认引擎为:InNODB,在此之前是MyIASM。Innodb支持事务,MyIasm不支持事务。
一:脏读:
事务A修改了某个值,但是未提交,这时候事务A又读取了这个值,事务A可能又把该值撤销(回滚),这时候的数据可能就是无用数据。这就叫脏读。这里有些同学可能就要问了,既然事务A没提交,事务B是怎么读取到的?如果MYSQL隔离级别设置ReadUnCommitted,这时候其他事务就可以读取到未提交的事务。(重点在于未提交)
二:不可重复读:
事务A读取某个数据后,再次读取发现数据已经改变,两次或者多次读取同一数据数据不一致。(重点在于修改,数据本身对比)
场景1:
在同一个事务中,A查看自己工资有1000元,准备取出来,这个过程没有结束;此时财务人员在更新工资,把工资更新为2000,当A在取的时候,发现多了1000块,这个过程在这里看起来没啥问题,这就是不可重复读,下面看另外一个场景。
场景2:
A今天查看自己卡了有1000,于是打算消费,此时A的老婆B正在网上转账,当A消费的那一刻,发现卡里钱不够了,明明刚才还有1000,为什么没了呢?因为
最后
以上就是粗暴蜜粉为你收集整理的MYSQL事务并发处理的问题:脏读、不可重复读、幻读一:脏读:二:不可重复读:的全部内容,希望文章能够帮你解决MYSQL事务并发处理的问题:脏读、不可重复读、幻读一:脏读:二:不可重复读:所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复