mongoDb报错Query failed with error code 96 and error message

mongoDb报错Query failed with error code 96 and error message

今天线上项目遇到了Query failed with error code 96 and error message错误,提示Sort operation used more than the maximum 33554432 bytes of RAM.

意思即sort操作后使用的内存超过了32M,处理方式有两种

  • 增加mongo的使用内存
  • 排序字段添加索引

第一种的会增加服务器的内存开销,取决于服务器配置

db.adminCommand({setParameter:1, internalQueryExecMaxBlockingSortBytes:335544320}) //将使用内存扩大10倍

第二种的建索引方式将会增加数据写入的时间,但也会相应的减少查询时间,有舍有得,取决于业务.

如果有必要的话当然也可以一起使用,.由于我们的服务器配置有限,所以采用的第二种方式