ホームページ  >  記事  >  MongoDB ビューの実行計画

MongoDB ビューの実行計画

小云云
小云云オリジナル
2017-12-09 16:12:381985ブラウズ

この記事では、MongoDB の実行計画の表示に関する知識を共有し、皆様のお役に立てれば幸いです。 MongoDB の Explain() 関数は、クエリ関連の情報を表示するのに役立ちます。これにより、検索のボトルネックを迅速に見つけて解決することができます。この記事では、Explain() のいくつかの使用法とクエリ結果の意味を見ていきます。

1. MongoDB を Linux にインストールする
2. MongoDB の基本操作
4. MongoDB ドキュメントの更新操作
5. MongoDB ドキュメントのクエリ操作
7. MongoDB ドキュメント クエリ操作 (3)

一般に、explain() の使用法は、sort() および limit() の使用法と似ていますが、違いは、explain() を最後に配置する必要があることです。

基本的な使用法

まず基本的な使用法を見てみましょう:

db.sang_collect.find({x:1}).explain()

は find() 関数に直接続き、 find() 関数の実行計画を表示することを示します。 結果は次のとおりです。 1 つはクエリ プランである queryPlanner、もう 1 つは MongoDB サービスに関する情報である serverInfo です。ここには多くのパラメーターが関係しています。それらを一つずつ見てみましょう。 queried

indexFilterSet

indexを使用するかどうかparsedQueryクエリ条件、ここではx=1ですwiningPlan最高の実行プランステージクエリメソッド、一般的なものがありますCOLLSCAN/フルテーブルスキャン、IXSCAN/インデックススキャン、FETCH/インデックスに基づくドキュメントの取得、SHARD_MERGE/マージシャード結果、IDHACK/_idのクエリfilterフィルタ条件direction検索方向rejectedPlans拒否された実行プランserverInfoMongoDBサーバー情報queryPlannerexecutionStats は、次のような最適な実行計画の統計情報を返します:
{
    "queryPlanner" : {
        "plannerVersion" : 1,
        "namespace" : "sang.sang_collect",
        "indexFilterSet" : false,
        "parsedQuery" : {
            "x" : {
                "$eq" : 1.0
            }
        },
        "winningPlan" : {
            "stage" : "COLLSCAN",
            "filter" : {
                "x" : {
                    "$eq" : 1.0
                }
            },
            "direction" : "forward"
        },
        "rejectedPlans" : []
    },
    "serverInfo" : {
        "host" : "localhost.localdomain",
        "port" : 27017,
        "version" : "3.4.9",
        "gitVersion" : "876ebee8c7dd0e2d992f36a848ff4dc50ee6603e"
    },
    "ok" : 1.0
}
パラメーター 意味
異なるパラメータを追加 explain()は、異なるパラメータを設定することで、より詳細なクエリプランを表示することもできます。
queryPlanner はデフォルトのパラメーターです。queryPlanner パラメーターを追加した後のクエリ結果は、上で確認したクエリ結果であるため、ここでは詳しく説明しません。 executionStats
上で紹介したいくつかのパラメーターに加えて、次の意味を持つexecutionStats パラメーターもあります:

executionSuccess

実行が成功したかどうか

nReturned

返された結果の数

executionTimeMillis

実行時間totalKeysExinatedインデックススキャンの数 totalDocsExinatedドキュメントスキャンの数executionStagesこのカテゴリは実行ステータスを説明しますステージスキャン方法、具体的なオプションの値は上記と同じですnReturned クエリ結果の数executionTimeMillisEstimate推定所要時間works作業単位の数、クエリは小さな作業単位に分割されます上級最初に返される結果の数docsEx aminedDocumentation チェックの数はtotalDocsExaminedと一致しています さて、MongoDB の Explain() についての話はやめましょう。質問がある場合は、ディスカッションのためにメッセージを残してください。 MongoDB のヒントと注意事項の概要 MongoDB の固定コレクションの詳細な説明 mongodb データベースの使用方法に関する Laravel チュートリアル
allPlansExecution allPlansExecutionは、基本的にすべての実行プランを取得するために使用されますので、行きません。ここで詳しく説明します。
関連する推奨事項:
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。