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

L'ordinamento di MongoDB è estremamente lento anche sui campi indicizzati

Dovresti eseguire explain contro la tua richiesta, ti aiuterà a capire cosa sta succedendo.

È probabile che Mongo non stia utilizzando un indice sia per il filtraggio che per l'ordinamento. Quando usi un $or , può utilizzare più indici per abbinare le opzioni. Ma quando aggiungi un sort potrebbe impedirgli di utilizzare gli indici disponibili per il filtraggio.

Quando vuoi ordinare su una query, devi assicurarti che il campo ordinato sia nell'indice che vuoi colpire (ultimo, altrimenti non può usarlo per ordinare).

Potresti essere in grado di accelerarlo passando anche un suggerimento di indice. Non so a quanti documenti corrisponda la tua query, ma se è un numero piccolo e ti assicuri che le condizioni iniziali colpiscano un indice, l'ordinamento su _id può essere fatto rapidamente.