mongodb - 有什么简单的方法可以判断 mongodb 索引是否仍在使用?

标签 mongodb indexing

随着我的项目代码的不断发展,新的索引正在就位,我确信一些旧的索引不再需要。然而,在我删除它们以查看是否有任何东西变慢之前,我更希望是否有一种更具编程性或分析性的方法来确定索引是否正在被使用。

我在 system.indexes 集合中没有看到任何内容,但理想情况下在某处有一些关于索引访问的统计信息!是这样吗?

最佳答案

运行 db.collection.find(...) 查询,并将 .explain() 添加到末尾。这是查看查询如何运行的最有用的方法:http://www.mongodb.org/display/DOCS/Explain

您还可以打开分析,分析日志条目会为您提供所分析的每个查询的索引使用情况。不过,到目前为止还没有任何汇总统计数据。特别是,它不会告诉您哪些索引未被使用,只会告诉您正在使用的索引(对于每个查询)。 (编辑:我一定是在想象——你必须从探查器中获取查询,然后对其运行解释。手动有点痛苦。)http://www.mongodb.org/display/DOCS/Database+Profiler

更新: 刚从 mongolab 看到这个;看起来像一个有趣的新项目:http://blog.mongolab.com/2012/06/introducing-dex-the-index-bot/

更新: 我创建了一个脚本来通过探查器检查未使用的索引: https://github.com/wfreeman/indexalizer

关于mongodb - 有什么简单的方法可以判断 mongodb 索引是否仍在使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12355702/

相关文章:

javascript - 如何在 MongoDB shell 中转到下一行?

java - 如何更新Mongodb的文档而不影响其字段值之一

mysql - 如何查看mysql中索引的大小(包括主键)

sql - 是否可以向临时表添加索引? create #t 和 declare @t 有什么区别

arrays - 如何在 mongodb 中更新多个数组元素

javascript - 返回在循环中调用的回调结果的串联

node.js - 如何对 keystonejs 模型进行单元测试?

python - 询问用户列表的索引,Python

sql - 包含 "condition"的 ORDER BY 的索引

php - 使用随机组件优化和索引查询