【问题标题】:MongoDB- dealing with huge collectionsMongoDB-处理庞大的集合
【发布时间】:2020-01-24 20:48:11
【问题描述】:

我有一个巨大的 MongoDB 集合,其中包含数亿个文档(例如 300m、400m 并且还在增长)。确保查询和聚合快速运行的最佳解决方案是什么?我有一些想法,哪一个是正确的?

  1. 将数据拆分为几个较小的集合。
  2. 将最初聚合的数据存储在单独的集合中,以便对于最常见的查询/聚合可以快速返回结果。
  3. 添加适当的索引 - 向如此大的集合添加索引是否有意义?
  4. 保留一个集合并将此数据分布到多台机器(分片)? MongoDB 是否可以处理分布在少数或更多机器上的此类集合?

有没有我错过的更好的解决方案?

【问题讨论】:

    标签: mongodb bigdata


    【解决方案1】:
    1. 将数据分成几个较小的集合。

      仅当您的查询和聚合仅限于此类较小的集合时才有意义。如果您的查询必须加入多个集合,那么您不会获得太多。您的查询会更复杂。

    2. 将最初聚合的数据存储在单独的集合中,以便对于最常见的查询/聚合,可以快速返回结果。

      可能有意义,但是您创建的冗余数据可能与您的实际数据不一致。除此之外,您还需要更多磁盘空间。

    3. 添加适当的索引——给这么大的集合添加索引有意义吗?

      绝对是个好主意。如果这么大的集合没有任何索引,那将是非常令人惊讶的。

    4. 保留一个集合并将这些数据分布在多台机器上(分片)?

      当然也是个好主意。这在一定程度上类似于(1),但 MongoDB 处理的是拆分和连接,所以你不需要关心它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 1970-01-01
      • 2014-09-04
      • 1970-01-01
      相关资源
      最近更新 更多