今天遇到一个问题引发的思考:Mongodb Executor error: Overflow sort stage buffered data usage of 33554572 bytes exceeds internal limit of 33554432 bytes
经过换算可以得出 33554432 bytes 是 32mb字节,查询文档获知: mongodb 限制了在内存中进行 sort 操作(无法使用索引的情况下)时所使用的最大内存大小,默认是 32 M(33554432 bytes)。再结合之前使用mapreduce的经验所说,采用排序和不采用排序事件下10多倍做(在某次有限制的数据内测试)。因此小编在此,猜测可能使用主键_id排序解决问题。
经过实践操作果真可以处理这个查询问题,再此小编大胆的提出建议,以后遇到大数据时,采用主键排序和不采用排序,看下两种方法之间的时间差。
虽然这个在任何现有资料中都没有说过相关的事情,但是经过1000W级别的数据验证,小编获得了该结论!希望可以帮助到大家