为了账号安全,请及时绑定邮箱和手机立即绑定

mysql数据库并发问题解决方案?

mysql数据库并发问题解决方案?

冷魇 2017-10-01 22:22:32
最近写购物程序时当考虑到并发情况下避免出现超额购买的问题。想了下面如图1这个流程当接到买入请求时更新库存(操作方式如图2)操作返回int i若为1则表示库存足够,可以购买。0则表示库存不足。若更新库存成功则开启事务(允许用户进行支付操作,这里会引用外部api,由于事务允许并发,所以不会干扰性能,考虑到支付操作时是针对的单行记录,其他线程不会对此事务造成干扰引起错乱)问题1:现在不明白的是图2中标注出的那一行,他的返回的原理是什么。内部是否是原子性的实现,若内部实现采用的是类似row_count(),在并发情况下就会出现获取返回条目与实际不符,导致判断出错。问题2:这种流程还会出现哪些严重的问题。-----------------------------------------分割线-----------------------------------------------虽然介绍说事务是原子性的,但并不是真正意义上一个事务执行完才可以执行另一个事务。遇到并发的情况下,多个事务对库存的同时进行读操作后再进行写操作会造成错误。 所以在刚接到请求时更新库存没有用到事务。
查看完整描述

1 回答

  • 1 回答
  • 0 关注
  • 1843 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信