MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

A classificação do MongoDB é extremamente lenta, mesmo em campos indexados


Você deve executar explain contra sua consulta, ele o ajudará a descobrir o que está acontecendo.

É provável que o Mongo não esteja usando um índice para filtragem e classificação. Quando você usa um $or , ele pode usar vários índices para corresponder às opções. Mas quando você adiciona um sort pode fazer com que não use índices disponíveis para filtragem.

Quando você deseja classificar em uma consulta, você precisa certificar-se de que o campo classificado esteja no índice que você deseja atingir (por último, ou não pode usá-lo para classificar).

Você também pode acelerá-lo passando uma dica de índice. Não sei quantos documentos sua consulta corresponde, mas se for um número pequeno e você tiver certeza de que as condições iniciais estão atingindo um índice, a classificação em _id pode ser feito rapidamente.