游客发表
线上服务的序时限制项详MongoDB中有一个很大的表,我查询时使用了sort()根据某个字段进行排序,内存结果报了下面这个错误:
[Error] Executor error during find command :: caused by :: Sort operation used more than the maximum 33554432 bytes of RAM. Add an index,大小的注 or specify a smaller limit.

这是个非常常见的MongoDB报错了。因为MongoDB处理排序时,创建如果排序的企商汇索引字段没有建立索引,会把全表都丢到内存中处理。意事
If MongoDB cannot use an index or 序时限制项详indexes to obtain the sort order, MongoDB must perform a blocking sort operation on the data. A blocking sort indicates that MongoDB must consume and process all input documents to the sort before returning results.
而内存的大小并不是无限使用的,MongoDB的内存默认设置是32MB。云南idc服务商一旦数据量超过32MB,大小的注则会报错。创建
32MB这个限制是索引在参数internalQueryExecMaxBlockingSortBytes中控制。你可以在MongoDB的意事客户端上直接查看这个参数的值,执行以下语句:
?序时限制项详云服务器随机阅读
热门排行
友情链接