
假设有两个表,一个存放buy_record用户秒杀记录,一个是产品表goods
通过在buy_record添加uid,goods_id并加唯一索引
开启事务
插入 insert into buy_record
if(唯一索引报错?){
抛异常,用户已经秒过了,回滚
}else{
update goods set goods_num=goods_num-1 where goods_id=$goods_id and goods_num>0 ;//更新库存
if(受影响行数<=0){
抛异常,商品秒完了,回滚
}
}
其他方案:
主要思路:
1、前端三板斧【扩容】【限流】【静态化】
2、后端两条路【内存】+【排队】
解决方案1:
将存库从MySQL......