你好我在db中有这样的对象:
{ "_id" : ObjectId("56d9fc68bb9dcdcc9f73e6b7"), "ApplicationId" : 9, "CreatedDateUtc" : ISODate("2016-01-01T21:26:57.116Z"), "Message" : "yolo", "EventType" : 4 }
我将按ApplicationId
和CreatedDateUtc
(可选EventType
)字段进行搜索,因此我创建了一个复合索引(我保持id字段的defult索引完整):
{
"v" : 1,
"key" : {
"ApplicationId" : 1,
"CreatedDateUtc" : -1
},
"name" : "ApplicationId_1_CreatedDateUtc_-1",
"ns" : "test.testLogs"
}
使用几乎每次(日期)都是唯一的字段作为索引的一部分是一个好主意吗?如果我得到整个索引的想法,那么这种方法会使索引变得臃肿,这使得更难以快速找到东西。我对么? 有770k条目我有~19MB索引。我不知道它是不是很大,但似乎很大。
> db.testLogs.count()
770999
> db.testLogs.totalIndexSize()
18952192
我正在考虑为每小时创建一个独特的字段(可能是分钟和小东西的日期),并将其用于索引。有更好的想法吗?