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

Consulta mongoDB ridiculamente lenta em coleção pequena em banco de dados simples, mas grande


O avgObjSize está fora de linha com a estimativa de 280 bytes. Está dizendo que seus objetos têm em média 5 MB e storageSize está perto de 1GB. Se você estiver com restrição de memória, executar uma consulta que precisa acessar todos os 1 GB de arquivo causaria muitas falhas de página.

Você já tentou compactar ?
db.runCommand({compact: 'Aggregates'})

ou reparando ?
db.repairDatabase()

Se isso não funcionar, tente recuperar apenas os campos necessários para a soma, em vez de extrair todo o documento. Pode ser que esses documentos tenham na verdade 5 MB e o tempo seja gasto puxando os dados pela rede.
def get_total():
    start = datetime.now()
    print sum([x['daily_total_pages'] for x in c.Aggregates.find({}, {"daily_total_pages": 1})])
    end = datetime.now()
    print (end-start).seconds