IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    mongodb小知识 - MongoDB Sort : how to fix maximum RAM exceeded error

    Durban发表于 2020-11-25 09:23:18
    love 0

    MongoDB Sort : how to fix maximum RAM exceeded error

    针对这个问题具体的报错信息如下

    Error: error: {
    "ok" : 0,
    "errmsg" : "Executor error during find command :: caused by :: errmsg: \"Sort operation used more than the maximum 33554432 bytes of RAM. Add an index, or specify a smaller limit.\"",
    "code" : 96,
    "codeName" : "OperationFailed"
    }

    解决办法:

    1、加索引(这个是比较常用的方式)

    2、增加RAM大小

    db.adminCommand({setParameter: 1, internalQueryExecMaxBlockingSortBytes: 335544320})

    具体的大小可以根据具体的情况来设置

    查看RAM大小的话,使用下面的命令

    db.runCommand( { getParameter : 1, "internalQueryExecMaxBlockingSortBytes" : 1 } )

    3、使用aggregate 命令

    如果用aggregate的话,通过设置选项allowDiskUse的值为true,允许临时将数据写到文件中,具体使用参考如下

    db.getCollection('users').aggregate( [
          { $sort : { age : 1} }
       ],
       { allowDiskUse: true }
    )

    如果在排序的时候想要得到一个好的性能,最好是创建索引

    db.users.createIndex( { age: 1 } )

    参考文章点击这里



沪ICP备19023445号-2号
友情链接