問題タブ [compound-index]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
sharepoint-online - SharePoint Online: サポートされている列の種類を使用しても複合インデックスを作成できない
現在 26,000 個のアイテムが含まれているリストに対して、Sharepoint Online で複合インデックスを作成しようとしています。使用したい列 (タイプと部門) の両方に次の設定があります。
- 設定
- タイプ = 選択肢
- この列に情報が含まれていることを要求する = はい
- ドロップダウン メニューを使用して選択肢を表示する
- 「記入」の選択肢を許可しない
- デフォルト値 = 選択、ただし何も入力されていません
- 列の検証なし
使用したい最初の列 (Type) には null がありません。つまり、すべての項目に値があります。この列をプライマリ列として選択すると、セカンダリ列フィールドにアクセスできなくなります (グレー表示されます)。
確かに、同じ列 (タイプ) を使用する既存の単純なインデックスがあります。他の多くの場所でこの単純なインデックスを既に使用しているため、このインデックスをまだ削除していません。1 つの列を複数のインデックスに参加させることはできないということを読んだことがないので、単純なインデックスをそのままにしておくことをお勧めします。
mongodb - MongoDB & 部分インデックス: null 日付でフィルタリングするときのフィルタリング段階を避ける
DBルックアップをできる限り最適化しようとしています。私が理解していることから、私の目標は、唯一のステージが IXScan である winingPlan をターゲットにすることです。しかし、日付キーを含むフィールドがあり、「null」日付値でフィルタリングするときにドキュメントを直接検索できる複合インデックスを作成できないようです。
私のフィルタークエリは次のとおりです
このクエリに正確に対応する部分インデックスを作成してみました (たとえば、論理的に削除されたドキュメントを表示する必要がないことがわかっているため、インデックス メモリを節約するためです)。
(コードは Ruby ですが、Mongoid を使用すると問題なく MongoDB 言語に変換されることに注意してください)
soft_deleted_at
私の勝利の計画は次のように見えるので、これはフィルターを除いてうまくいくようです
したがって、ここ"stage"=>"FETCH", "filter"=>{"soft_deleted_at"=>{"$eq"=>nil}},
では、基本的に手動で日付フィールドを null 値でフィルタリングするこの追加の段階があります。これがすでに部分インデックスにあり、それ以上のフィルタリングを必要としないことを望んでいました...私は間違っていましたか?
この余分なフィルター段階を回避する方法はありますか?