explain() (実行プランの説明)

最終更新:2026-10-09

explain() (実行プランの説明)

explain() はクエリの実行プランを明らかにします: `db.users.find({ age: { $gt: 20 } }).explain('executionStats')`。結果はインデックス使用、スキャンされたドキュメント数、時間を示し、パフォーマンスチューニングの核となるツールです。引数は 'queryPlanner'(デフォルト、プランのみ)、'executionStats'(実際の実行統計)、'allPlansExecution'(すべての候補プラン)のいずれかです。

カテゴリカーソル
MongoDB バージョン1.0+
例の言語mongosh(シェル)

📝 構文

db.<collection>.find(<filter>).explain(<verbosity>)

⚙️ パラメータ

モード任意。'queryPlanner'、'executionStats'、または 'allPlansExecution'。

戻り値:実行プランと統計を持つドキュメント。

▶ 例

以下のコマンドをローカルの mongosh で実行してください(mongod が起動済みである必要があります):

// explain: age のクエリがインデックスを使うか確認する
const plan = db.users.find({ age: { $gt: 20 } })
  .explain('executionStats')
print('Docs examined: ' + plan.executionStats.totalDocsExamined)

出力:

Docs examined: 1000

📌 注意事項

📚 関連チュートリアル

❓ よくある質問

Qクエリがインデックスを使うかどうかどう判断しますか?
AwinningPlan を確認します。IXSCAN はインデックス使用、COLLSCAN はコレクション全体のスキャンを意味します。
Qexplain の3つのモードの違いは?
AqueryPlanner はプランのみを最速で表示します。executionStats は実際の実行統計を追加し、allPlansExecution はすべての候補プランの詳細を示します。
Qexplain は実際にクエリを実行しますか?
A実行します(queryPlanner モードを除く)。統計は実際の実行から来ますが、ドキュメントは返されません。
Web-Tutorial.com

Web-Tutorial 技術チーム

複数の開発者によって共同維持されているプログラミングチュートリアルプラットフォーム。各チュートリアルは専門分野の開発者が執筆・レビューしています。正確で信頼性の高いコンテンツを目指しています — 問題を見つけた場合はお知らせください。

100%