+
 新版

并发扣减商品库存,避免数据库更新,导致行锁?

Hugo2038 发布于 2016/09/03 22:13
阅读 3K+
收藏 1
同一个商品,商品表分表,同一个商品的库存扣减,直接SQL更新扣减,会导致并发行锁。怎么避免?使用分布式锁?还是有什么方案?
加载中
0
sunnysky
sunnysky

引用来自“sunnysky”的评论

可以在数据库加一个版本号,每次update时保证版本号是最新的即可,否则继续查询,直到取到最新版本号才更新。

引用来自“io2038”的评论

就是担心行锁,事务未提交时,肯定会锁住。
行锁就行锁呗,不死锁就行了。能保证最终数据一致性就行了。
0
宏哥
宏哥

首先,你得去除mysql


ked
ked
说的好像某p能解决行锁问题一样
0
sunnysky
sunnysky
可以在数据库加一个版本号,每次update时保证版本号是最新的即可,否则继续查询,直到取到最新版本号才更新。
0
Hugo2038
Hugo2038

引用来自“sunnysky”的评论

可以在数据库加一个版本号,每次update时保证版本号是最新的即可,否则继续查询,直到取到最新版本号才更新。
就是担心行锁,事务未提交时,肯定会锁住。
0
ked
ked
像库存这么细的颗粒度,要保持数据一致性,必定是要锁的。就看你在哪锁。建议把数量放到redis里,利用red is
0
Hugo2038
Hugo2038

引用来自“sunnysky”的评论

可以在数据库加一个版本号,每次update时保证版本号是最新的即可,否则继续查询,直到取到最新版本号才更新。

引用来自“io2038”的评论

就是担心行锁,事务未提交时,肯定会锁住。

引用来自“sunnysky”的评论

行锁就行锁呗,不死锁就行了。能保证最终数据一致性就行了。
发生行锁,返回让重试?
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部