MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Абсурдно бавна mongoDB заявка за малка колекция в проста, но голяма база данни

avgObjSize не отговаря на оценката за 280 байта. Казва, че вашите обекти са средно около 5MB и storageSize е близо 1GB. Ако имате ограничена памет, изпълнението на заявка, която трябва да получи достъп до всичките 1 GB файл, ще доведе до много грешки в страницата.

Опитвали ли сте компактиране ?

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

или поправяне ?

db.repairDatabase()

Ако това не работи, опитайте да изтеглите обратно само тези полета, необходими за сумата, вместо да изтеглите целия документ. Може да се окаже, че тези документи всъщност са 5MB и времето се изразходва за изтегляне на данни по кабела.

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. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Време за изчакване на връзката към MongoDb на Azure VM

  2. Mongoose не може да се свърже без интернет

  3. много към много отношения с nosql (mongodb и mongoose)

  4. Как да намеря обект, чиито свойства foo или bar са равни на стойност на заявка?

  5. Атомно преместване на обект по ID от един масив в друг в същия документ