MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Perché MongoDB non utilizza l'indice composto per la query?

L'indice "FirstIdSecondIdCreationTime" non è stato considerato automaticamente perché è stato creato con regole di confronto e la query viene eseguita senza regole di confronto.

Usa .collation() cursore per specificare le stesse regole di confronto per la query utilizzata per l'indice.

Anche il tempo di esecuzione di 5,5 secondi che utilizza quell'indice è piuttosto lento. Potresti notare qualche miglioramento in quella query se crei un indice su {FirstId: 1, SecondId: 1, _id: 1} in modo che l'esecutore della query possa utilizzare l'indice per soddisfare l'ordinamento anziché un ordinamento in memoria.