use*_*r10 7 mongodb mongodb-php
我构建了一个MongoDB.我想通过某些分组进行聚合.我找到了这个文件,它会为我做这件事.一切都很好,但指出了一些限制:
管道输出只能包含16兆字节.如果结果集超出此限制,则aggregate命令会产生错误.
如果任何单个聚合操作占用系统RAM的10%以上,则操作将产生错误.
聚合系统当前将$group
操作存储在存储器中,这可能在处理大量组时引起问题.
我可以使用MongoDB聚合处理多少行/文档?我不敢用这个.任何人都可以指导我这个吗?
use*_*r10 17
我从谷歌小组得到了有效和有用的答案.想和大家分享一下.
限制不在于文档数量:限制是最终结果(或中间结果)使用的内存量.
所以:如果你汇总了20万份文件,但结果符合16MB的结果,那你就没事了.如果您聚合100个文档并且结果不适合16 MB,那么您将收到错误.
类似地,如果对中间结果执行sort()或group(),并且该操作需要超过10%的可用RAM,那么您将收到错误.这与您拥有的文档数量有很大关系:它是管道特定阶段有多大的函数.
我可以通过任何设置增加16MB吗?
仅对最终结果是16MB限制还是对于该特定聚合(意味着,中间结果+任何临时持股+最终结果)?
16MB限制不可调整.这是MongoDB中文档的最大大小.由于聚合框架当前是作为命令实现的,因此聚合的结果必须在单个文档中返回:因此限制为16 MB.
看这篇文章
归档时间: |
|
查看次数: |
4897 次 |
最近记录: |