概述
订单超卖问题是涉及到库存项目的重中之重,这里我总结一下常用的方法
1、简单处理【update & select 合并】(乐观锁)
beginTranse(开启事务)
$num = 1; try{ $dbca->query('update s_store set amount = amount - $num where amount>=$num and postID = 12345'); }catch($e Exception){ rollBack(回滚) } commit(提交事务)
还有一种就是加版本号【先select 后 update】
$db->query('update s_store set amount = amount - $num,version = version+1 where version=$version and postID = 12345');
个人更推荐合并的那个
场景:适用于小型应用并发小
2、使用redis队列
点击这里查看具体代码
场景:大型应用高并发
总结:以上就是最常见的解决方案,当然也有其他的一些方式,看了后发现还是这两种更合适,以上两种方案足以解决正常的各种情况
转载于:https://www.cnblogs.com/chenhaoyu/p/10371058.html
最后
以上就是鲤鱼砖头为你收集整理的MySQL防止库存超卖方法总结的全部内容,希望文章能够帮你解决MySQL防止库存超卖方法总结所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复