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

come funziona l'indice Mongodb?

L'ordine dei campi nell'indice è importante; il miglior indice composto per il tuo esempio di ricerca e ordinamento sarebbe in realtà:

db.test.ensure_index([("xxx",1),("_id",-1)])

Poiché i tuoi criteri di ricerca sono nel campo 'xxx', inserendo questo campo per primo nell'indice troverai più risultati rispetto alla ricerca per _id e quindi filtrando i documenti corrispondenti al tuo xxx criteri.

Se guardi il n numero per ogni piano considerato da Query Optimizer in allPlans , il BtreeCursor xxx_1 index restituisce effettivamente la maggior parte dei risultati (34). Gli altri indici restituiscono 9, 10 e 16 risultati... quindi sarebbe meno efficiente per i criteri di ricerca indicati.

Per ulteriori informazioni sull'ottimizzazione degli indici, questo articolo è molto utile:Ottimizzazione degli indici composti MongoDB .