为了账号安全,请及时绑定邮箱和手机立即绑定

秒杀场景下 如何保证数据准确

秒杀场景下 如何保证数据准确

Smart猫小萌 2019-04-13 08:36:43
秒杀时商品价格递增,比如第一个买的两百,第二个买的三百,第三个四百以此类推,同时修改库存等其他表在更新的时候防止超卖等问题我用的是行锁,插入的时候为了确保数据准确使用了唯一索引但是带来的问题是秒杀成功率低请问在插入或者更新的时候如何保证数据的准确性与完整性和相对较高的处理效率,因为之前没做过类似应用希望大家能给出思路
查看完整描述

2 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

秒杀自古只有一个问题:
机器与程序性能是否能支撑住秒杀业务。
能撑住就随便玩,撑不住,那就使用各种【优化】:
1.秒杀前,对参与秒杀的用户进行登记,不登记的无法秒杀。
登记的作用是,筛选出参与秒杀的用户,一般这个量比较少,把他们的数据放入专用表里,可以提高检索速度。
2.使用C或C++写的高速队列来为后端数据库减压,同时也容易保证数据的正确性。
3.使用分时算法,也就是5秒内,数据库以日志的形式,写入所有人的秒杀数据,此时数据库不能进行其他任何操作,比如查结果。5秒后,关闭写入,此时对日志进行去重、合法性判断等操作,这个过程中数据库同样不能进行其他任何操作,比如写入秒杀日志。这些操作进行完毕后,向客户端返回秒杀结果。接着,再进行5秒钟的秒杀日志写入操作。这种方法,在参与人数远远大于商品数量的时候,特别有效。
                            
查看完整回答
反对 回复 2019-04-13
  • 2 回答
  • 0 关注
  • 523 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号