In termini di prestazioni la differenza sarà piccolo al meglio. A causa del fatto che i vostri indirizzi e-mail sono unici, qualsiasi indice composto che abbia un campo di posta elettronica non sarà mai più utile di un indice solo sull'indirizzo di posta elettronica. Il motivo è che il tuo campo di posta elettronica ha già la cardinalità massima per la tua raccolta e qualsiasi ulteriore campo di indice non aiuterà il database a filtrare i record più velocemente poiché arriverà sempre sui documenti corretti con solo il campo della posta elettronica.
In termini di utilizzo della memoria (che è molto importante per database come MongoDB) anche l'indice di posta elettronica è molto più piccolo.
TL; DR: Utilizzare l'indice solo sull'indirizzo di posta elettronica.
fonte
2012-03-07 10:19:06
Questa è la direzione in cui mi sono appoggiato, e la considerazione dello spazio in genere significherebbe che solo l'indice di posta elettronica è la decisione corretta. Questo è il motivo per cui l'ho svalutato. Tuttavia nella tua risposta non vedo una prova convincente di quale delle due opzioni funzioni meglio nel caso medio. –
Beh, dovrebbe essere facile da dedurre. Se l'indice A (solo e-mail) rende esattamente lo stesso albero b come l'indice B (composto) non esiste uno scenario possibile in cui l'indice composto può essere più veloce. –