sql >> Database >  >> NoSQL >> MongoDB

Belachelijk trage mongoDB-query op kleine verzameling in eenvoudige maar grote database

De avgObjSize is niet in lijn met de schatting van 280 bytes. Het zegt dat uw objecten gemiddeld ongeveer 5 MB zijn en storageSize is bijna 1 GB. Als je geheugen beperkt is, zou het uitvoeren van een query die toegang moet hebben tot alle 1 GB aan bestanden, veel paginafouten veroorzaken.

Heb je compacten geprobeerd ?

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

of repareren ?

db.repairDatabase()

Als dat niet werkt, probeer dan alleen die velden terug te trekken die nodig zijn voor de som in plaats van het hele document te trekken. Het kan zijn dat die documenten in werkelijkheid 5 MB zijn en dat de tijd wordt besteed aan het over de draad trekken van gegevens.

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. Gevoelige gegevensscheiding binnen MongoDB en NodeJS - verwijzingen via versleutelde sleutel

  2. Opmerking:niet-gedefinieerde eigenschap:MongoDB\Driver\Manager::$mydb in [Pad] in wamp-server

  3. Vastgelopen bij het wijzigen van binaire gegevens naar base64 (Gridfs-stream)

  4. De functie db.system.js aanroepen in $where