2012-05-29 5 views
0

Si j'ai une collection que je requête basée sur les champs _id et CreationTimestamp.O comme ci-dessous:index MongoDB requête

var _query = Query.And(
Query.EQ("_id", "TheId"), 
    Query.GT("CreationTimestamp.0", DateTimeOffset.UtcNow.AddMinutes(-15).UtcTicks)); 

Dois-je créer un index composé sur ces deux domaines? Je sais que _id par défaut a un index.

Je cherche des conseils sur les meilleures pratiques à savoir créer un index composé pour les deux champs ou tout simplement créer un index pour CreationTimestamp.O leur est déjà un indice sur _id

Répondre

3

Il n'y a pas beaucoup d'avantages dans la création de l'indice composé ici . Puisque la sélectivité de l'index créé automatiquement sur le champ _id est de 1 (c'est un index unique), il n'y a pas de raison de préfixer un indice composé. Le seul avantage possible peut être le fait que MongoDB peut utiliser covered index pour cette requête et éventuellement accélérer les choses (vous avez besoin de benchmark sur vos données pour le prouver).