2016-07-11 1 views
2

JavaコードがMongoと会話し、その結果をSpring Dataでストリームするアプリケーションに取り組んでいます。私たちはプロファイラの出力を見てきましたが、私はそれが何を意味するのか100%ではありません。Mongoクエリをプロファイリングするとき、「millis」は何を意味しますか?

https://docs.mongodb.com/manual/reference/database-profiler/

{ 
    "op" : "query", 
    "ns" : "test.c", 
    "query" : { 
     "find" : "c", 
     "filter" : { 
     "a" : 1 
     } 
    }, 
    "keysExamined" : 2, 
    "docsExamined" : 2, 
    "cursorExhausted" : true, 
... 
"responseLength" : 108, 
"millis" : 0, 

ドキュメントの説明は次のとおりです。

system.profile.millis 運転開始からのmongodの観点から、ミリ秒単位の時間の終わりに操作。

でも、操作は何ですか?クエリを実行していて、1000の結果を戻している場合は、クエリプランの「ミリ秒」の時間ですか?それとも、それは結果を引き出してドライバーに送ることに費やしているのでしょうか?

これは、ストリーミングと非ストリーミングの違いは何ですか?

答えて

0

操作はクエリです。クエリはドキュメントを返さず、代わりにディスク上のドキュメントの場所を指すカーソルを返します。

"millis"の結果は、MongoDBがクエリ結果を検索するのにかかる時間ですコレクション検索、照会基準を満たすすべての文書を識別し、必要に応じてソートを実行します)、対応するカーソルをドライバーに戻します。

"ストリーミング"の意味はわかりませんが、クエリの結果にアクセスするためにカーソルを反復するドライバが原因である可能性があります。

関連する問題