老师,关于下单减库存中触发行锁的疑惑

来源: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

是的 如果没有索引就变成表锁了

1
2
Code_Deli
老师你好,item_id的索引是我们主动加的吗
2021-07-04
共2条回复

聚焦Java性能优化 打造亿级流量秒杀系统(赠秒杀项目)

理解高流量电商网站性能构建思路 用高逼格技术解决性能提升问题

2188 学习 · 1010 问题

查看课程