MongoDB设计用于实时报告系统

时间:2013-08-05 11:47:24

标签: java mongodb reporting document

我要求每小时(每日,每周)报告广告系列的优惠券代码兑换。广告系列可以包含多个优惠券代码。

我打算使用MongoDB并且脑子里有两种方法:

  1. 将每个兑换详情存储在一个文档中,并根据搜索条件对其进行查询。
  2. 创建一个小时的单个文档,并将兑换详细信息作为嵌套文档。此处文档的关键是广告系列ID开始时间和结束时间。代表每次兑换的嵌套文件将与方法1中的相同。
  3. 在性能方面是否有第二种方法的优势。平均每小时的兑换总数将为1000,广告系列的最大兑换次数将为100万。

    我还必须考虑MongoDB中单个文档的大小限制为16 MB。

    请帮我设计这个解决方案。

    此致 阿布舍克巴克

1 个答案:

答案 0 :(得分:0)

我建议您使用您提到的第一种方法,因为您不会拥有大量数据。如果您使用ensureIndex,那么运行其中任何一个搜索都需要几毫秒。我们已经与MongoDB合作了一段时间,我们正在处理超过20M记录的结果,从搜索中检索数据只需不到一秒钟,如果您想要更改查询,它会更清晰,更清晰未来。