indexStats()(查看索引使用统计)
最后更新:2026-10-09
indexStats()(查看索引使用统计)
indexStats()返回集合各索引的使用统计,例如`db.users.indexStats()`,包含每个索引被访问的次数、命中/未命中计数等信息。它可以帮你发现从未被使用的索引并删除,减少写放大和存储开销。注意:统计从服务器最近一次启动或索引重建后开始累计。
| 分类 | 索引与管理 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
db.<集合>.indexStats()
返回值:索引统计数组,含name、accesses、hits、misses等字段。
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// indexStats:查看各索引被使用的次数
const stats = db.users.indexStats()
stats.forEach(s => print(s.name + ': ' + s.accesses.ops + ' 次'))
运行结果:
_id_: 120 次
age_1: 45 次
email_1: 3 次
📌 注意事项
- 零访问的索引考虑删除以降低写放大
- 统计在服务器重启或索引重建后清零
- 需要服务器开启相关指标收集支持
🏷️ 相关标签
💡 相关案例
更多实战案例即将上线,敬请期待。
📚 相关教程
❓ 常见问题
QindexStats能看出哪些索引没用吗?
A能,accesses.ops为0或极低的索引说明很少被查询利用,可考虑删除。
QindexStats的统计从什么时候开始?
A从服务器最近一次启动或索引被重建时开始累计。
Q删掉不用的索引有什么好处?
A减少写入时的索引维护开销(写放大),并释放磁盘与内存空间。