秒杀系统的常识

3月 14, 2019 |

1、update t_seckill_goods set stock=stock-1 where stock>0 and id=1 对同一条记录update,秒杀扣减库存的场景,那么所有的请求需要在数据库排队,且每个请求都需要持久化,最慢的操作,基本上100/s,所以如果有100个库存,将库存拆成10条记录,按用户的id取模去扣减相应的库存量,也能提交并发量
2、insert into t_order 由于插入不是针对同一条记录,只要日志记录成功就满足了数据库的持久化要求,基本上1000/s
3、update t_seckill_goods set stock=stock-1 where stock>0 and id=1 当不满足stock>0时 update退化成select 语句,基本上3000-5000/s
4、tomcat 空跑(收到请求后返回hello world信息),基本上5000-2w/s
5、一个事务中 扣减库存+ 插入订单记录 基本上100/s

所以设计秒杀系统时,一定要层层过滤,让数据库的不要成为瓶颈,

Posted in: WEB开发

Comments are closed.