文章详情页
数据库 - mysql如何处理数据变化中的事务?
浏览:259日期:2022-06-14 13:16:41
问题描述
有以下两个事务同时commit:A: 读取余额,减掉50,提交更新数据库B: 读取余额,加上50,提交数据库
假设A,B两事务同时提交,mysql如何保证最终结果正确?mysql默认隔离级别为可重复读,那么就有可能A读到余额100元,然后更新到50;此时B执行,B执行完成。此时库为150;A再提交的话就成了50,B的更新被覆盖。。我的这个理解方式哪里有问题?mysql如何解决这个问题?
问题解答
回答1:事务这块在程序控制,一般不要数据库自己的事务机制
回答2:select for update,上锁,效果就是A或B其中一个读了余额,另外一个等待锁读不了余额,也就不会有后续的并发写。
回答3:你这个不属于事务,事务是用来处理多个事件的添删改
而你这个属于并发。。。
只是修改一条数据,不需要使用事务,像你说的同时就会耗性能
相关文章:
1. java - 做一个视频播放器,想实现一个功能,如果3秒不点击屏幕任何,则下方一个界面布局(显示按钮那些的)自动消失。2. docker - 如何修改运行中容器的配置3. docker-compose 为何找不到配置文件?4. javascript - Vue $refs 为什么无法获取组件对象5. clone - git sourceTree克隆仓库时,都不停弹出Password Required弹窗,即时输入正确的git账号密码还是弹出6. node.js - npm安装模块时,在cmd上显示的是一条白线,白线前面是一天反斜线转圈圈,然后就出现npm ERR错误了,求帮助,谢谢7. angular.js - 百度爬虫如何处理“#”符号?8. php - 注册验证邮箱失效后操作问题9. python - 怎么通过vpn连内网ftp?10. html5 - 请问一下写H5的时候 你们都是兼容那些手机
排行榜

网公网安备