收藏
回答

云开发 高频率更新、高频率拉取数据,数据库常出现超时

框架类型 问题类型 终端类型 AppID 环境ID 基础库版本
小程序 Bug 微信iOS客户端 wxbbfb0963f6a5f7c8 prod-7siri6 2.13.0

社交小程序,更新和查询频率较大,昨晚到了8点-9点有一批4000+流量进入,数据库查询出现大规模超时,以下是代码查询:

result = await db.collection('dyns').aggregate()
        .match({
            level: 1,
            delete: 0,
            status: 1,
            ifhidden: _.neq(1),
            circleId: _.neq('234555567888'),
            verifyStatus: _.exists(false)
          })
          .sort({
            sort: -1,
            time: -1,
          })
          .limit(limit)
        .lookup({
          from: 'users',
          let: {
            openId: '$openId'
          },
          pipeline: $.pipeline()
            .match(_.expr(
              $.eq(['$openId', '$$openId']),
            ))
            .project({
              _id: 0,
              avatar: 1,
              nick: 1,
              city: 1,
              country: 1,
              labels: 1,
              openId: 1,
              avatarVisitUrl: 1,
              joinStatus: 1
            })
            .done(),
          as: 'userInfo',
        })
        .project({
         comments: 0,
        })
        .end();


这个是当时的流量访问


不知道能不能给一些建议呢?因为涉及高频访问、高频更新,如何加缓存呢

回答关注问题邀请回答
收藏

1 个回答

  • 文豪Evan
    文豪Evan
    2021-04-02

    limit多大?不大应该没问题的

    2021-04-02
    有用
    回复 1
    • 陈小二。
      陈小二。
      2021-04-02
      20   感觉是描述的不太清楚,整个小程序更新和拉新都比较频繁,查询容易超时,之前没加索引,今天开始加,但是今天还是不间断会有超时
      2021-04-02
      回复
登录 后发表内容
问题标签