0

mongo では、インデックスを作成するときに、次のクエリが a) category_ids と status、または b) category_ids、status と name にインデックスを持つかどうかを把握しようとしています。

Source.where(category_ids: [1,2,3], status: Status::ACTIVE).order_by(:name) # ((Ruby/Mongoid code))

基本的に、インデックスに ORDER_BY 列を含める必要があるかどうかを把握しようとしていますか? またはWHERE句のみですか?これについてどこでもっと読むことができますか?

4

1 に答える 1

3

はい、特定のクエリのインデックスは、クエリの速度に役立ちます。ただし、ここで注意すべき点が 1 つあります。それは、インデックス フィールドの順序です。

$inそこにを使用していることに気付きましたcategory_ids$inこのリンクは、並べ替え (または実際には一般的な並べ替え) でインデックスを使用することから生じる少し複雑さを理解するのに特に役立ちます: http://blog.mongolab.com/2012/06/cardinal-ins/

最後に、クエリのタイプに最適なインデックス順序のインデアを提供します。

インデックス内のフィールドの順序は次のとおりです。

First, fields on which you will query for exact values.
Second, fields on which you will sort.
Finally, fields on which you will query for a range of values.

参考までに、他の役立つリンクをいくつか以下に示します。

これらは、インデックスの最適化を開始し、クエリで機能させるのに役立ちます。

于 2013-02-12T08:54:50.267 に答える