1

我正在做一个项目,我打算让大量用户将他们的消息存储在我的数据库中。这些包含文本和二进制数据(想想电子邮件)的消息将与单个用户具有多对一的关系。由于 mongo db 的单个文档的文档大小限制为 16mb,我想我需要通过链接来关联它们。

这将需要两个单独的集合,这意味着更多的往返和更差的性能。有没有我没有想到的替代方案?

4

1 回答 1

2

嗯,真的没有太多选择。链接或嵌入是标准选择。但是,在某些情况下,实施混合方法可能是有益的。我称之为“批次”。

该方法的本质是:您将许多消息粘贴到单个文档中,就像在嵌入中一样。当该文档即将溢出时,您开始写入第二个文档(并有第一个文档链接到它)。

这样一来,与单个链接文档相比,您可以获得更好的批量读取性能,但您也无法高效地查询它们(我想您希望从包中查询多个文档,因为这些是消息)。

评估您的查询模式并明智地选择。

于 2012-11-09T06:30:34.060 回答