$indexStats (インデックス統計)
最終更新:2026-10-09
$indexStats (インデックス統計)
$indexStats は、インデックスごとの使用統計 — 名前、アクセス回数、ミス回数、最終使用時刻 — をインデックスごとに 1 ドキュメントで返します。使われていないインデックスを見つけたり、ヒット率を評価したりするのに使います。カウンターは mongod インスタンス上で累積し、再起動でリセットされます。シャーディングされたコレクションではシャードごとに報告されます。
| カテゴリ | 高度と診断 |
|---|---|
| MongoDB バージョン | 1.0+ |
| 例の言語 | mongosh(シェル) |
📝 構文
{ $indexStats: {} }
戻り値:インデックスごとに1つの統計ドキュメント
▶ 例
以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):
// $indexStats: orders 上の各インデックスの使用状況
db.orders.aggregate([
{ $indexStats: {} }
])
出力:
// インデックスごとに 1 ドキュメント。name、アクセス回数などが含まれる
📌 注意事項
- カウンターは mongod 起動時から累積し、再起動でリセットされる
- インデックスのサイズや構造を知りたい場合は $collStats を使う
- シャーディングされたコレクションはシャードごとに 1 行を出力する
🏷️ 関連タグ
💡 関連ケース
📚 関連チュートリアル
❓ よくある質問
Q$indexStats で未使用インデックスを見つけられますか?
Aはい。アクセス回数が 0 のまま長期間使われていないインデックスは削除候補です。
Qカウンターはリセットされますか?
Aはい。mongod を再起動するとカウンターは 0 に戻ります。
Q$indexStats はパラメータを受け取りますか?
Aいいえ。{ $indexStats: {} } と書くだけです。