sql >> Base de Datos >  >> NoSQL >> MongoDB

Consulta mongoDB ridículamente lenta en una colección pequeña en una base de datos simple pero grande

El avgObjSize está fuera de línea con la estimación de 280 bytes. Dice que sus objetos tienen un promedio de alrededor de 5 MB y storageSize está cerca de 1 GB. Si tiene limitaciones de memoria, ejecutar una consulta que necesita acceder a 1 GB de archivo completo causaría muchos errores de página.

¿Ha intentado compactar ?

db.runCommand({compact: 'Aggregates'})

o reparación ?

db.repairDatabase()

Si eso no funciona, intente retirar solo los campos necesarios para la suma en lugar de extraer todo el documento. Puede ser que esos documentos sean en realidad de 5 MB y el tiempo se dedique a extraer datos a través del cable.

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