假设我们有一个具有足够大RAM的服务器,当我们使用单独的集合而不是嵌入的对象列表时,为什么还要担心需要额外的查询?由于查询速度非常快,将对象存储为嵌入列表是否值得?
答案 0 :(得分:0)
通常,嵌入式文档源于开发人员习惯于SQL JOIN并希望他们的数据都在一个查询中。但如果你把它煮沸,通常你会遇到像
这样的问题对于给定
X
,属于它的Y
是什么?
通常你已经拥有X
。在大多数情况下,无需过早加载您从未需要的数据。考虑一下Xs的概述页面,您可以在其中选择要查看X
Y
的{{1}}。即使分页为10,如果您嵌入了所有数据,那么加载的9/10数据将毫无用处。有趣的事实:这也适用于SQL - 尽管现在似乎没有人关心真正的优化。
这是my blog post "The problem with overembedding"的摘要,您可以在其中找到上述各点的详细说明。