【问题标题】:Mongo Updates being super slowMongo 更新超级慢
【发布时间】:2019-07-19 07:06:53
【问题描述】:

我们的 mongo 更新面临超时问题。我们的收藏目前包含大约 30 万份文档。当我们尝试通过 UI 更新记录时,服务器超时并且 UI 卡在了边缘。

Lead.updateOne({
      _id: body.CandidateID
    }, {
      $set: {
        ingestionStatus: 'SUBMITTED',
        program: body.program,
        participant: body.participant,
        promotion: body.promotion,
        addressMeta: body.addressMeta,
        CreatedByID: body.CreatedByID,
        entryPerson: body.entryPerson,
        lastEnteredOn: body.lastEnteredOn,
        zipcode: body.zipcode,
        state: body.state,
        readableAddress: body.readableAddress,
        promotionId: body.promotionId,
        programId: body.programId,
        phone1: body.phone1,
        personId: body.personId,
        lastName: body.lastName,
        hasSignature: body.hasSignature,
        firstName: body.firstName,
        city: body.city,
        email: body.email,
        addressVerified: body.addressVerified,
        address: body.address,
        accountId: body.accountId
      }

这就是我们更新单个记录的方式。我们在堆栈中使用 mlab 和 Heroku。寻求有关如何大大加快速度的建议。

谢谢。

【问题讨论】:

  • 这是一个非常基本的更新,应该在毫秒内完成。数据库是否发生了其他可能阻止更新的操作?

标签: node.js mongodb heroku mongoose mlab


【解决方案1】:

如果您的索引没问题,那么您可以在此集合上尝试rebuilding indexes。 从 mango 命令行收集索引: 例如,从 mongo 命令行重建潜在客户集合索引:

db.lead.reIndex();

参考:

https://docs.mongodb.com/v3.2/tutorial/manage-indexes/ https://docs.mongodb.com/manual/reference/command/repairDatabase/

【讨论】:

    【解决方案2】:

    如果你不使用这个,那么试试这个 索引构建可以阻止对数据库的写入操作,因此您不希望在高峰使用期间在大型表的前台构建索引。您可以通过在创建时指定 background: true 来使用索引的后台创建。

    db.collection.createIndex({ a:1 }, { background: true })

    这最终需要更长的时间才能完成,但不会阻塞操作,对性能的影响也较小。

    【讨论】:

      【解决方案3】:

      1) 按 id 作为分片键收集分片线索。 2) 检查mongodb由于索引占用的内存是否小于mongoDb服务器的内存。

      【讨论】:

        【解决方案4】:

        您是否尝试过this answer 的建议?即,无需写入关注即可更新?

        【讨论】:

          猜你喜欢
          • 2021-03-07
          • 1970-01-01
          • 1970-01-01
          • 2021-07-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-07-23
          • 2015-07-26
          相关资源
          最近更新 更多