Docs Menu
Docs Home
/
MongoDB マニュアル
/

スロットベースのクエリ実行エンジン

項目一覧

  • スロットベースの実行エンジンに適したクエリ
  • どのクエリ エンジンが使用されたかを特定する
  • クエリ説明の結果の確認
  • スロー クエリ ログの確認

バージョン 5.1 で追加

クエリ結果を検索して返すために、MongoDB は次のいずれかのクエリ エンジンを使用します。

  • クラシック クエリ エンジン

  • スロットベースのクエリ実行エンジン。MongoDB 5.1 以降の一部のクエリで使用できます。

MongoDB はクエリを実行するためのエンジンを自動的に選択します。 特定のクエリのエンジンを手動で指定することはできません。

MongoDB は、特定の条件が満たされたクエリのサブセットに対して スロットベースのクエリ実行エンジンを 使用できます。 ほとんどの場合、スロットベースの実行エンジンは、従来のクエリ エンジンと比較してパフォーマンスが向上し、CPU とメモリのコストが削減されます。

MongoDB は、スロットベースのクエリ実行エンジンに適していないクエリにはクラシック エンジンを使用します。

MongoDB は、クエリごとにスロットベースの実行エンジンを使用するかどうかを判断し、クエリに存在する各演算子と式のサポートを考慮します。 たとえば、スロットベースの実行エンジンを使用する 2 つの一般的なパイプラインは、 $groupまたは$lookupステージで集計されます。 ただし、スロットベースの実行エンジンのサポートはバージョンに固有であり、積極的に変更されます。

クエリがスロットベースの実行エンジンを使用しているかどうかを確認するには、 使用されたクエリ エンジンを決定するセクションを参照してください。

クエリの実行にクラシック エンジンとスロットベースの実行エンジンのどちらが使用されたかを判断する方法がいくつかあります。

クエリの explain 結果は、使用されたクエリ エンジンによって異なります。 たとえば、スロットベースの実行エンジンを使用して実行されたクエリの explain 結果にはexplain.queryPlanner.winningPlan.slotBasedPlanフィールドが含まれます。

クエリ エンジン間の explain 結果の違いの詳細については、 explain の出力構造 を参照してください。

MongoDB 6.2 以降では、低速操作ログ メッセージに、クエリを実行したクエリ エンジンを示す queryFramework フィールドが含まれます。

  • queryFramework: "classic" は、クラシック エンジンでクエリが実行されたことを示します。

  • queryFramework: "sbe" はスロットベースのクエリ実行エンジンでクエリが実行されたことを示します。

スロットベースの実行エンジンを使用したクエリのログ メッセージの例については、「低速操作 」を参照してください。

戻る

サーバー セッション