MongoDB-处理庞大的集合

时间:2020-01-24 20:48:11

标签: mongodb bigdata

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

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

我错过了更好的解决方案吗?

1 个答案:

答案 0 :(得分:1)

  1. 将数据分成几个较小的集合。

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

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

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

  3. 添加适当的索引-向如此大的集合中添加索引有意义吗?

    绝对是个好主意。如果这么大的集合没有索引,这将非常

  4. 保留一个集合并将此数据分布在多台计算机上(分片)?

    绝对也是个好主意。在某种程度上,它类似于(1),但是MongoDB处理拆分和连接,因此您无需关心它。

相关问题