老师,关于下单减库存中触发行锁的疑惑
来源:7-1 交易性能瓶颈
绾绾爱吃肉
2021-05-07
1.下单减库存sql 为:update item_stock
set stock = stock - #{amount}
where item_id = #{itemId} and stock >= #{amount}
,这是写的where条件为item_id=#{itemId},是不是因为item_id为索引 所以这里触发了行锁,然后并发请求的时候,需求等待行锁释放。
2. 然后还有一个问题 之间见老师用 for update 是和这个是用一个道理吗,为了加上行锁?
麻烦老师
写回答
1回答
-
龙虾三少
2021-05-09
是的 如果没有索引就变成表锁了
122021-07-04
相似问题