quand index sur plusieurs touches à MongoDB
-
26-09-2019 - |
Question
dire que j'ai un document article avec: prix et champs: Cdt. Je veux parfois trouver tous les documents correspondant à une donnée: Prix et: qté, et à d'autres moments, il sera soit: le prix lui-même ou: qté sur son propre
.Je l'ai déjà indexé le: prix et: les clés de qté, mais ai-je besoin aussi de créer un index composé sur les deux ensemble ou sont les indices assez simples clés
Edit: J'ai trouvé cet article sur le site mongodb très utile:
http://www.mongodb.org/display/DOCS/ indexation + conseils + et + FAQ
La solution
Un index sur price
aide des requêtes sur price
. Un index sur qty
aide des requêtes sur qty
. Un index sur price
et qty
aide avec des requêtes sur des requêtes sur price
ET price
et qty
. Donc, il est comme obtenir deux indices pour le prix d'un. Il ne sera pas utile pour les requêtes sur qty
, cependant.
Vous devriez réduire le nombre d'indices que vous avez, baisse si l'un de vos index unique clé et créer un indice composé de départ avec cette touche.
En règle générale, si vous faites une requête sur x
, y
et z
, vous devriez avoir un indice comme {x:1, y:1, z:1}
. Cet indice fera les requêtes suivantes rapide:
db.foo.find({x : ..., y : ..., z : ...})
db.foo.find({x : ..., y : ...})
db.foo.find({x : ...})
Il ne fera pas ces requêtes rapides:
db.foo.find({y : ..., z : ...})
db.foo.find({y : ...})
Alors, assurez-vous que votre requête a la clé de contact (s) d'un indice en elle.
Autres conseils
si vous avez besoin: prix sur son propre ou:. Qté lui-même alors un indice composé ne fonctionnera pas