这种方式是否可以替代乐观锁

来源:6-1 如何实现商品秒杀?(一)

MapleIsland

2020-01-14

老师您好,在学习乐观锁的时候我想到了另一种方式,想问问您是否可以替代乐观锁。
假设库存字段是remain,我构造了这样的update语句:
update table set remain = remain - 1 where id = 1 and remain > 0;
在本地测试这个语句是可以执行的,想请教这个语句是否在高并发的生产环境下存在什么问题或者潜在的隐患,谢谢!

写回答

1回答

神思者

2020-01-14

出现超售现象,两个事务的sql语句检测商品只有最后一个库存,A事务和B事务都在修改库存,A提交之后,B修改库存减去1,提交事务之后变成-1

0
1
幕布斯1053111
mysql会锁行吧,如果一条数据被事务锁定的话,其他的事务会等待事务执行完成
2022-11-08
共1条回复

阿里新零售数据库设计与实战 (升级版)

解锁“新零售”业务让数据库实战能力再上一层楼

2101 学习 · 701 问题

查看课程