首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MongoDB multikey :最大(推荐,有效)键数?

MongoDB multikey :最大(推荐,有效)键数?
EN

Stack Overflow用户
提问于 2012-07-02 16:33:20
回答 1查看 681关注 0票数 1

我有“feed”集合,每个feed都有评论。因此,当有人在feed上发表评论时,他会被添加到"subsribers“中,这是Mongo的多键字段。

代码语言:javascript
复制
feeds: {
 _id: ...,
 text: "Text",
 comments: [{by: "A", text: "asd"},{by: "B", text: "sdf"}],
 subscribers: ["A","B"]

}

然后,当我需要为用户A获取所有带有新评论的提要时,我会请求带有{subscribers:"A"}的提要。

通常有2-5条评论,但有时(在热门feeds上)可能会有>100条评论和>100个订阅者。

我知道不推荐使用带有太多键的多键字段。那么,多少才算太多呢?

我这样问是因为我需要决定-是使用多键还是直接向每个用户发送评论更好。在这种情况下,我必须为每个订阅者复制提要-集合将增长非常快-我认为这也不是很好: 1000个用户,每个用户后面跟着10个用户,每个用户每天进行10次操作=每10天1,000,000条记录!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-02 23:32:17

尽管在处理非常大的文档时可能会遇到问题,特别是当MongoDB必须扫描整个文档才能完成查询时,正如您所预期的那样;在MongoDB中,包含大量值的数组本身并不存在问题,即使它们是多键索引。

有一点需要注意:索引不会存储超过1024个字节的键(对于多键文档,这是数组中的项)。只要数组中的项比这个限制短,就应该没问题。

话虽如此,do希望避免数据模型,在这种模型中,数组或文档的其他部分将无限增长并永远存在。虽然MongoDB会为每个文档在磁盘上添加一些填充,但如果文档在创建后大大增加,数据库必须将其移动到磁盘上的另一个位置。无论您决定如何对数据进行建模,都要确保文档在创建后不会增长太多。

参考资料:

  • Index Size Limit
  • Multikey Indexes
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11290222

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档