パフォーマンスの高いクエリを作成し、MongoDBがクエリを可能な限り効率的に処理できるように構成します。

DataFrameサービスのデータテーブルメタデータクエリはMongoDBを多用します。これらのクエリは、さまざまな理由で実行が遅くなったり、タイムアウトすることがあります。

適切に構成されていないクエリは、DataFrameサービスのパフォーマンスを低下させます。このパフォーマンスの低下は、DataFrameサービスと同じMongoDBインスタンスに接続されているサービスにも影響を与える可能性があります。

効率的なDataFrameサービスクエリを作成する

DataFrameサービスのパフォーマンスクエリを作成する際は、特定のガイドラインに従ってください。

ガイドライン 説明
すべてのクエリ句の中に、カーディナリティの高いインデックス付きフィールドに等式フィルタを追加する句を含めます。
メモ カーディナリティの高いインデックス付きフィールドには、ほとんど固有の値が含まれます。

これらの句により、データベースはクエリ検索スペースを少数のデータベースエントリに効率的に減らすことができます。

サンプル句には、TestResultIdフィールドや、インデックスが構成されたカーディナリティの高いフィールドが含まれます。

メモ デフォルトでは、SystemLinkはTestResultIdフィールドとIdフィールドにインデックスを作成します。
句には、以下のフィルタの1つも含まれます。
  • カーディナリティが高いインデックス付きフィールドの簡単な等式フィルタです。
  • フィールドが複数の値のいずれかと等しいかどうかをチェックするフィルタです。
すべての結果をRowsModifiedAtフィールドで並べ替えます。

DataFrameサービスで作成されたインデックスは、RowsModifiedAtによる効率的な順序付けをサポートします。他のフィールドで順序付けを行うには、データベースで高コストなメモリ内ソートを行う必要があります。