我们知道数据库处理sql是一条条处理的,假设购买商品的流程是这样的:
sql1:查询商品库存if(库存数量 > 0) { //生成订单... sql2:库存-1}
当没有并发时,上面的流程看起来是如此完美,假设同时两个人下单,而库存只有1个了,在sql1阶段两个人查询到的库存都是>0的,于是最终都执行了sql2,库存最后变为-1,超售了,要么补库存,要么等用户投诉吧。解决这个问题比较好的方法是什么呢?
guijianshi
相关分类