今天读到一篇文章,关于双十一的秒杀活动,其中涉及了这么一种BUG,用户在刷新页面的时候,会查询一次数据库,此表中有一万多条数据,需要查询8千条数据,活动在推广时,会因用户请求访问量大的因素导致数据库堵塞,甚至出现奔溃的状态;
有两种解决方案:
1、用户在请求活动页面时,从数据库中查询根据合作渠道的ABCDE查询出对应的8000多条广告渠道a1、a2...放入redis缓存,缓存可存放一天,用户再次访问该活动页面是可以从缓存中的数据提取便可。
2、用户在请求活动页面时,取url中广告渠道track=a1在查询a1所对应的合作渠道A,判断A是否在合作渠道ABCDE中,若存在即屏蔽,不在则无需屏蔽(每次在数据库中查询一条数据)