1

我们在社交网络中有一个用户模型(mongodb)。与用户相关的属性有很多,但并不是每次都需要。所以我应该将它存储在同一个文档中,还是创建一个单独的模型。

将其存储在同一个文档中会增加文档的大小。这会影响查询速度吗?什么是最佳实践。

4

2 回答 2

0

您没有提示有多少字段或每个字段的大小,但是,正如@Sergio 所说,大型文档可以增加您的工作集和 LRU 所需的内存量。如果您需要索引涵盖许多这些额外字段的复合索引,它还可以增加特定查询的索引大小,从而增加索引所需的 RAM 量。

但是,就速度而言,MongoDB 完全设计为以各种方式工作,最大文档大小为 16 meg,只要您正确设置集群。

所以你的主要问题是你的内存和空间,如果你考虑到这一点并以最佳速度工作,那么你应该没问题。正如@Sergio 再次所说的那样,主要的解决方案是去规范化,但是我的主要回答问题是:您多久需要同时需要该表中的所有数据?

于 2012-10-29T09:14:30.343 回答
0

我说,将所有很少访问的数据提取到其他文档中。否则你的用户文档会很臃肿,这会影响性能。即使您足够聪明,不会通过网络传输它们(使用find命令中的字段规范),它们仍然在同一个文件中,这会降低完整扫描的性能并不必要地增加您的工作集大小。

于 2012-10-29T06:59:52.333 回答