【问题标题】:Is it good to create multiple collections in mongodb在mongodb中创建多个集合好不好
【发布时间】:2018-09-05 07:02:45
【问题描述】:

我有两种文件:

{
    field1: value1,
    field2: value2,
    category: cpp
}

{
    field1: value1,
    field2: value2,
    category: cs
}

我有大约 300000 个属于第一类 (cpp) 的文档和大约 400000 个属于第二类 (cs) 的文档。在这两种情况下,除了category 之外,所有字段都相同。

读取操作哪个选项更快:

  1. 为每个类别创建单独的集合

  2. 只有一个集合并在 category 字段上添加索引。

【问题讨论】:

  • 您需要告诉我们更多关于您的阅读模式的信息。你是否例如在一个查询中需要两个类别的文档?诸如备份或安全性或其他性能之类的非功能性主题呢?单个字段的索引?
  • @dnickless 1. 我可以对不同的文档使用不同的查询。 2.我可以在这个字段(类别)上添加索引,但这会更快吗?
  • 不,不会。如果您将所有文档保存在同一个集合中,并且需要对每个查询进行过滤,那么过滤将付出代价 - 没有什么是免费的...... ;) 因此,如果这些文档彼此没有任何关系,除了它们在这个阶段碰巧有类似的字段,然后一定要把它们放在不同的集合中!

标签: mongodb


【解决方案1】:

我建议坚持单一收藏并在类别中添加Single Field Index。显然,当您阅读时,它只会扫描相关文档。进一步提高性能,你可以实现sharding

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-22
    • 1970-01-01
    • 2020-09-29
    相关资源
    最近更新 更多