sql >> Databasteknik >  >> NoSQL >> MongoDB

Löjligt långsam mongoDB-fråga på liten samling i enkel men stor databas

avgObjSize är inte i linje med uppskattningen på 280 byte. Det sägs att dina objekt är i genomsnitt runt 5 MB och storageSize är nära 1GB. Om du har ett begränsat minne att köra en fråga som behöver komma åt hela 1 GB fil skulle det orsaka många sidfel.

Har du testat att komprimera ?

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

eller reparera ?

db.repairDatabase()

Om det inte fungerar försök dra tillbaka bara de fält som behövs för summan istället för att dra hela dokumentet. Det kan vara så att dessa dokument faktiskt är 5 MB och tiden går åt till att dra data över sladden.

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



  1. MongoDB Java - Pushing till en kapslad Array?

  2. Laravel 5 kör aggregering med mongodb on where-klausul

  3. Azure DataBricks Stream foreach misslyckas med NotSerializableException

  4. Kan inte ansluta till alternativ Mongo DB i Meteor-appen