如何设计mongodb的日志存储集合?

时间:2014-02-20 01:50:27

标签: mongodb sharding database

我需要设计一个mongodb数据库,用于存储日志:

例如:

{ "_id" : 2, "date" : "Wed Feb 19 2014 22:02:01 GMT+0800 (CST)", "user" : 342 }

查询将像这样使用:

db.test.find({"user":342, "date":{"$lt" : new Date(2013, 3, 2)})

所以我必须建立一个像

这样的索引
{user:1, date:1}

每天有300万条日志。

所以我认为几个月后集合会变得太大,索引查询会很慢,所以我想将日志分成很多集合,一个集合只存储一天的日志。

如果我想查询几天的日志,我会查询几个集合并合并结果。

我应该将数据库分成多个集合,一天收集一个集合吗?

这种分片有哪些优点或缺点?

1 个答案:

答案 0 :(得分:0)

这取决于您的应用程序和您实现的业务逻辑。我不知道您的数据库是如何设计的,但如果您不经常需要旧数据,最好将日志保存在单独的数据库中并获取它。所以它不会影响你当前的数据库。仍然需要了解您的应用程序如何需要...并基于此您可以设计您的数据库...