$indexStats(索引统计)
最后更新:2026-10-09
$indexStats(索引统计)
$indexStats 输出集合中每个索引的使用统计:索引名、访问次数、未命中次数和最后使用时间,每条索引输出一条文档。用于排查未使用索引、评估索引命中率。统计在 mongod 实例上累计,实例重启后清零;分片集合每个分片一条记录。
| 分类 | 高级与诊断 |
|---|---|
| MongoDB 版本 | 1.0+ |
| 示例语言 | mongosh (Shell) |
📝 语法
{ $indexStats: {} }
返回值:每条索引一条统计文档
▶ 示例
请在本地安装的 mongosh 中执行以下命令(需已启动 mongod):
// $indexStats:查看订单集合各索引使用情况
db.orders.aggregate([
{ $indexStats: {} }
])
运行结果:
// 每个索引一条,含 name、accesses 等字段
📌 注意事项
- 计数器自 mongod 启动后累计,重启清零
- 不反映索引大小或结构,看大小用 $collStats
- 分片集合输出按分片分行
🏷️ 相关标签
💡 相关案例
📚 相关教程
❓ 常见问题
Q$indexStats 能发现未使用的索引吗?
A能,accesses 为 0 且长时间未用的索引可考虑删除。
Q统计会清零吗?
A会,mongod 进程重启后累计计数归零。
Q$indexStats 有参数吗?
A没有,直接使用 { $indexStats: {} }。