2016-04-21 38 views
2

我有一個包含20多個索引的集合,我不確定哪些實際上正在被定期使用。我懷疑幾個非常大的索引很少使用,但會對寫入性能和內存使用造成負面影響。 mmap或WiredTiger會保留每個索引用於返回結果的次數嗎?MongoDB是否跟蹤每個索引在查詢中使用的次數?

更新:我發現https://jira.mongodb.org/browse/SERVER-2227似乎表明這應該存在於版本3.2+,但實際上查看此計數器找不到任何文檔。

回答

1

您可以使用$indexStats(3.2版新增):

db.collection.aggregate([{ $indexStats: { } }]) 

其中,除了其它信息,返回號所使用的指數(OPS屬性)操作。

{ 
    "name" : "_id_", 
    "key" : { "_id" : 1 }, 
    "host" : "test-dev:27017", 
    "accesses" : { 
     "ops" : NumberLong(2), 
     "since" : ISODate("2016-04-21T14:15:57.846Z") 
    } 
} 
+1

只是提醒 - 似乎這是在Mongo 3.2中添加 –

相關問題