gpt4 book ai didi

mongodb - 我们应该在读取量大的应用程序中使用 dbref 还是嵌入文档

转载 作者:行者123 更新时间:2023-12-02 05:20:53 26 4
gpt4 key购买 nike

我们正在开发一个读取量很大并且可能包含数百万个文档的应用程序。几乎每个集合我们都需要引用用户信息。用户信息具有一些可能不时更改的属性。

我们应该使用 DBref 还是将用户信息嵌入到所有集合中?

在大量读取的应用程序中,DBref 性能有多差?

如果我们不使用DBref,如果用户信息定期更改,我们如何更新每个文档?

在 Mongodb 中,对于这种用例,有 DBref 和嵌入文档的替代方案吗?

最佳答案

DBref 与传统关系系统中的外键完全不同。它只是一个约定,可以轻松地告诉驱动程序(有能力的)自动加载这些引用的文档。请参阅DBRef欲了解更多信息。

根据所使用的驱动程序,您可能只能在需要时自动加载这些引用(惰性),因此性能开销应该非常小。但存储开销比简单引用另一个文档的_id要高一些。基本上,我想说,如果链接的文档可以是变量类型,则应该仅使用这些 DBref。如果它是静态的,那么你就会被 _id-references 困住,也许你自己的惰性加载器功能也会被困住,所以你不会重复自己。

不要重复自己(或数据库术语中的数据重复)也适用于您的上下文,正如 MongoDB 建议的那样(所以我也会这样做),即仅 link your documents 。否则,您将拥有更高的存储使用率和运行时间较长的更新,以仅更新一个逻辑实体(物理上经常重复)。

使用前面提到的自定义延迟加载程序,您可以添加一些缓存,这样并不是每个查找实际上都会导致 mongodb 查找。您很可能需要注意缓存和数据库之间的数据一致性。

关于mongodb - 我们应该在读取量大的应用程序中使用 dbref 还是嵌入文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11008186/

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