sql >> データベース >  >> NoSQL >> MongoDB

MongoDBでは、インデックスが3つのフィールドにある場合、2つのフィールドでクエリを実行するときにそのインデックスを使用できますか? (3番目のフィールドのワイルドカード)

    これらはBツリーインデックスであるため、関連する列のプレフィックスサブセットに使用できます。先頭の列がない場合、インデックス範囲スキャン(Bツリーインデックスが主に使用される操作)は使用できなくなります。インデックスを引き続き使用する方法は他にもありますが(たとえば、Oracleには高速フルスキャンとスキップスキャンがあります)、通常、インデックスは使用されません。

    この推論は、リレーショナルDBであるかどうかに関係なく、Bツリーインデックスを使用するすべてのものに適用されます。

    繰り返しますが、これは列のタイプではなく、インデックス内の列の順序に依存します。先頭の列が必要です(この場合、page_typeが必要です)。 page_typeのないクエリが多数ある場合は、最後の列としてpage_typeを使用してインデックスを再作成することを検討してください(もちろん、他のクエリにも悪影響を与える可能性があります)。一般に、インデックスを設計する前に、実行するクエリの種類を知っておく必要があります。




    1. REDISでマップのキーを期限切れにする方法は?

    2. javaアプリケーションを介してmongolabで作成されたmongodbを接続する

    3. 2つのオブジェクト配列を比較し、それらに共通の要素があるかどうかを確認します

    4. nodeJSを使用してJSONオブジェクトからアイテムを削除するにはどうすればよいですか?