我有一个包含 20 多个索引的集合,但我不确定实际上经常使用哪些索引。我怀疑有几个非常大的索引很少使用,但却对写入性能和内存使用产生了负面影响。 mmap 或 WiredTiger 是否保留每个索引用于返回结果的次数的统计信息?
更新:我找到了https://jira.mongodb.org/browse/SERVER-2227这似乎表明这应该存在于版本 3.2+ 中,但找不到任何关于实际查看此计数器的文档。
最佳答案
您可以使用 $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")
}
}
关于mongodb - MongoDB 是否跟踪每个索引在查询中使用了多少次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36771781/