如何处理大型mongodb集合

时间:2014-12-24 05:01:50

标签: mongodb collections analytics sharding

我们有一个可能非常大的集合。这个集合用于存储Bill相关数据。因此,这通常用于报告/分析目的。

请告诉我处理这个大型系列的最佳方法

1)我可以拆分和存档旧数据(例如12个月)吗?但是这里需要旧数据来获取分析报告。我想查询这些旧数据以显示过去2个人的销售比较。

2)我可以使用旧数据(12个月)进行新的收集。因此,我每12个月就会创建一个新的收藏品。为了生成报告,我可以访问所有要查询的文档。那么这会导致性能问题吗?

3)我可以选择Sharding吗?

1 个答案:

答案 0 :(得分:1)

要考虑很多变量,最明显的是您使用的硬件,数据的结构以及查询方式。分布式网络应该能够比单个机器更快地咀嚼您的数据,但在深入研究该解决方案之前,我建议生成与您期望的相当的荒谬数量的模拟数据,然后测试各种方法。认真。创建一堆数据,并尝试破解事物。好有趣!很快你就会比任何网站都能告诉你更多地了解你的问题需要什么。

关于直接回复:

  1. 也许,在归档数据之前,可以生成(或更新)适当的统计摘要。这些摘要/简化可用于销售比较,无需重新加载它们所代表的所有存档数据。

  2. 这让我觉得很明智。通过拆分销售数据,您可以更好地控制需要访问的数据量。毕竟,用户不会总是希望看到3年的数据,他们可能只希望看到上周的数据。

  3. 实际需要时移至分片。正如MongoDB网站上所述:

      

    将非分片数据库转换为分片群集非常简单且无缝,因此在数据集很小的情况下配置分片几乎没有什么优势。

  4. 您将知道您的内存映射接近服务器RAM限制的时间。 MongoDB支持读取和写入数据库太大而无法保留在内存中,但我相信您已经知道 SLOW

相关问题