Docs Menu
Docs Home
/
Atlas
/ / / /

セグメント間でのクエリ実行の並列化

concurrent オプションはクエリ内並列処理を有効にします。このモードでは 、 MongoDB Search はより多くのリソースを使用しますが、個々の クエリのレイテンシ は改善されます。この機能は、 専用検索ノードでのみ使用できます。

MongoDB Search は、concurrent オプションを使用してクエリを実行する場合、各クエリが同時に実行されることを保証しません。例、同時クエリがキューに入れられすぎると、 MongoDB Search は単一スレッド実行にフォールバックする可能性があります。

concurrent の構文は次のとおりです。

{
"$searchMeta"|"$search": {
"index": "<index name>", // optional, defaults to "default"
"<operator>": {
<operator-specifications>
},
"concurrent": true | false,
...
}
}

concurrentブール値オプションを使用すると、 MongoDB Search にリクエストセグメント間でクエリの実行を並列化することができます。これにより、多くの場合、応答時間が向上します。concurrent オプションには次のいずれかの値を設定できます。

  • true - MongoDB Search にクエリをマルチスレッドで実行するようリクエスト

  • false - クエリをシングルスレッドで実行する場合(デフォルト)

MongoDB Search では、クエリごとにこの動作を制御して、重いクエリや長時間実行されるクエリのみの同時実行を有効にすることで、競合が最小限に抑えられ、クエリ全体のスループットが向上します。セグメントの量が多いため、同時実行は特に大規模なデータセットで効率的です。

サンプル データのsample_mflix.moviesコレクションに対する次のクエリを検討します。 クエリは、 title内にタームnew yorkを含む映画の同時検索を示します。

1db.movies.aggregate([
2 {
3 "$search": {
4 "text": {
5 "path": "title",
6 "query": "new york"
7 },
8 "concurrent": true
9 }
10 }
11])

戻る

パフォーマンス オプション

項目一覧