【发布时间】:2014-07-02 11:36:16
【问题描述】:
我正在考虑使用 MongoDB 来保存我们的活动日志数据,
{
"domain" : ""
"log_time" : ""
"email" : ""
"event_type" : "",
"data" : {
"campaign_id" : "",
"campaign_name" : "",
"message" : "",
"subscriber_id" : ""
}
}
上面是我们的事件结构,每个事件关联一个域,
一个域可以包含任意数量的事件,一个域与另一个域之间没有关系
我们的大多数查询一次只针对一个域
为了快速查询响应,我计划为每个域创建一个集合,以便我可以查询特定域集合数据,而不是查询包含所有域数据的整个数据
未来我们将拥有至少 100k+ 个域,因此我需要创建 100k+ 个集合。 我们预计每个集合有 100 万多个文档。
我们的主要目的是仅对必需的集合进行索引,我们不想对整个数据进行索引,这就是为什么我们计划每个域有一个集合
哪种方法更适合我的情况
1.将所有域事件存储在一个集合中 (或)
2.每个领域事件在单独的集合中
我看到了一些关于 mongodb 可以支持的最大集合数的问题,但我并不清楚这个主题,据我所知,我们可以扩展默认限制大小 24k,但是如果我创建 100k+ 集合,性能会怎样它会受到影响
这个解决方案(使用最大数量的集合)是否适合我的情况
请建议我的方法,提前谢谢
【问题讨论】:
-
在 1 个 DB 中可以拥有的集合数量是有限制的……您可以 read more here 了解 mongoDB 限制和阈值……我确实认为 100K 集合太多了。使用正确的索引,您应该仍然能够通过一个集合中的所有事件获得所需的性能。
-
您希望在每个集合中平均存储多少文档?
-
我们预计每个集合有 100 万多个文档
-
每个数据库允许的集合数量取决于名称空间文件的大小(请参阅docs.mongodb.org/manual/reference/limits/…)
标签: mongodb