搜索

首页  >  问答  >  正文

PHP项目,有个功能越来越慢

有个会员表越来越多会员,但是每次新增一个会员都会给前面的会员按一定规则算奖金啥的,反正越来越多的会员后,每增加一个会员时就会越来越慢(要计算的越来越多嘛),怎么处理这种场景啊。

怪我咯怪我咯2778 天前405

全部回复(5)我来回复

  • 我想大声告诉你

    我想大声告诉你2017-05-16 13:06:25

    可以先增加会员,奖金按一定时间范围计算,比如一周一结算,建张引荐表,记录最近一周的关联信息,然后跑个脚本,一周计算一次奖金。

    回复
    0
  • 巴扎黑

    巴扎黑2017-05-16 13:06:25

    1.这个结算发生在注册步骤?如果是的话,把结算的步骤拎出来,写到表里或者消息队列里,注册就干注册的事

    2.但是看上面的评论说日结,应该有做到步骤1,那结算整个流程应该是某一个固定的时间点执行所有今天加入的会员的相关结算(比如早上1点执行),慢点也无所谓把,只要把结算的跑完就好了

    回复
    0
  • 为情所困

    为情所困2017-05-16 13:06:25

    表结构看看设计是否,索引有没有可以优化的。诸如此类的

    回复
    0
  • 天蓬老师

    天蓬老师2017-05-16 13:06:25

    把结算拿出来单独运行吧。写个计划任务每天跑一边。或者把结算写在新用户第一次登陆上也行。

    回复
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-16 13:06:25

    这种需求就可以跑消息队列了。
    会员分利计算的消息先push到消息队列,然后写个php脚本接收消息扔到缓存去,然后每天业务低峰期做入库就行了

    回复
    0
  • 取消回复