Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我正在做一个项目,我打算让大量用户将他们的消息存储在我的数据库中。这些包含文本和二进制数据(想想电子邮件)的消息将与单个用户具有多对一的关系。由于 mongo db 的单个文档的文档大小限制为 16mb,我想我需要通过链接来关联它们。
这将需要两个单独的集合,这意味着更多的往返和更差的性能。有没有我没有想到的替代方案?
嗯,真的没有太多选择。链接或嵌入是标准选择。但是,在某些情况下,实施混合方法可能是有益的。我称之为“批次”。
该方法的本质是:您将许多消息粘贴到单个文档中,就像在嵌入中一样。当该文档即将溢出时,您开始写入第二个文档(并有第一个文档链接到它)。
这样一来,与单个链接文档相比,您可以获得更好的批量读取性能,但您也无法高效地查询它们(我想您希望从包中查询多个文档,因为这些是消息)。
评估您的查询模式并明智地选择。