mysql获取商品库存时为什么加行锁

来源:12-4 Spring Schedule关闭订单

慕粉4192055

2018-01-12

老师您好,获取商品库存时为什么要加行锁,能起到什么样的作用,谢谢老师

写回答

1回答

Geely

2018-01-13

你好,同学,这个是做并发处理常见的情况,如果不加锁,我们在回填库存的时候,假设现在拿到的是1件,在订单上,库存里是100件。这个时候先保证库存应该回归到101件。在并发的情况下,如果不上锁,内存里拿到了原来是100,加上1 是101。如果这个时候那个库存被下了10件。那么在这个节点之后,还会执行更新库存,那么库存就又变成了101件,但是已经卖出10件了哟。


0
7
lian2019_03_26
回复
Geely
这里没有事务啊,这个for update执行完了之后回填之前,商品还是可能被别的客户买走的吧,是这样吗?
2019-03-30
共7条回复

Java企业级电商项目架构 Tomcat集群与Redis分布式

Tomcat集群+Redis分布式+代码重构+源码原理解析

2685 学习 · 947 问题

查看课程