订单系统:先减库存还是先下订单
Posted teles
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了订单系统:先减库存还是先下订单相关的知识,希望对你有一定的参考价值。
答案是先下单再减库存
以 mysql 作为 DB 为例,下订单就是 insert,在使用索引的情况下,insert 插入是行级锁,支持每秒 4W 的并发。减库存就是 update 操作,命中索引时也是行级锁,但是这是个独占锁,所有的操作都要等待前一个释放锁后才能继续 update。
问题就在这里,根据 MySQL 两段锁协议,我们应该把热点操作放到离 commit 近的位置,这样可以减少行级锁的持有时间!自然处理效率就更好一些。
事务begin ---> insert ---> 其他操作 ---> update ---> 事务commit
以上是关于订单系统:先减库存还是先下订单的主要内容,如果未能解决你的问题,请参考以下文章