gpt4 book ai didi

mongodb - 我应该在产品环境中使用 "allowDiskUse"选项吗?

转载 作者:太空宇宙 更新时间:2023-11-04 11:27:20 24 4
gpt4 key购买 nike

当返回的文档聚合超过 16MB 限制时,我是否应该使用 allowedDiskUse 选项?

或者我应该改变数据库结构或代码逻辑以避免限制?“allowDiskUse”的优点和缺点是什么?感谢您的帮助。

她的是我看过的官方文档:结果大小限制

在 2.6 版本中进行了更改。

从 MongoDB 2.6 开始,聚合命令可以返回游标或将结果存储在集合中。当返回游标或将结果存储在集合中时,结果集中的每个文档都会受到 BSON 文档大小限制,当前为 16 MB;如果任何单个文档超过 BSON 文档大小限制,该命令将产生错误。该限制仅适用于退回的文件;在管道处理过程中,文档可能会超过此大小。

内存限制¶

在 2.6 版本中进行了更改。

管道阶段的 RAM 限制为 100 MB。如果某个阶段超过此限制,MongoDB 将产生错误。为了允许处理大型数据集,请使用allowDiskUse选项启用聚合管道阶段将数据写入临时文件。 https://docs.mongodb.com/manual/core/aggregation-pipeline-limits/

最佳答案

allowDiskUse 与 16MB 结果大小限制无关。该设置控制管道步骤(例如 $sort 或 $group)是否可以使用一些临时磁盘空间(如果它们需要超过 100MB 的内存)。理论上,对于任意管道,这可能是非常大的磁盘空间。就个人而言,这从来都不是问题,但这取决于您的数据。

如果您的结果将超过 16MB,那么您需要使用 $out 管道阶段将数据输出到集合,或使用将游标返回到结果的管道 API,而不是返回所有内联数据(对于某些驱动程序,这是一个单独的方法,对于其他驱动程序,它是传递给同一方法的标志)。

关于mongodb - 我应该在产品环境中使用 "allowDiskUse"选项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44193796/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com