sql >> Database teknologi >  >> NoSQL >> MongoDB

Latterligt langsom mongoDB-forespørgsel på lille samling i enkel, men stor database

avgObjSize er ude af overensstemmelse med estimatet på 280 byte. Det siger, at dine objekter i gennemsnit er omkring 5 MB og storageSize er tæt på 1 GB. Hvis du har begrænset hukommelse, vil det forårsage en masse sidefejl ved at køre en forespørgsel, der skal have adgang til alle 1 GB fil.

Har du prøvet at komprimere ?

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

eller reparation ?

db.repairDatabase()

Hvis det ikke virker, prøv at trække tilbage netop de felter, der er nødvendige for summen i stedet for at trække hele dokumentet. Det kan være, at disse dokumenter faktisk er på 5 MB, og tiden går med at trække data over ledningen.

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. Hvordan bruger man HSCAN kommando i Redis?

  2. Hvad er den største forskel mellem Redis og Membase?

  3. Find og tæl elementer i samlingen med Mongoose

  4. MongoDB-forespørgsler med null-værdi