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

Проблем с производителността на MongoDB:Единична огромна колекция срещу множество малки колекции

Разделянето на колекциите ви дава безплатен индекс без реални допълнителни разходи. Има допълнителни разходи за сканиране на индекс, особено ако индексът наистина не ви помага да намалите броя на резултатите, които трябва да сканира (ако имате милион резултати в индекса, но трябва да ги сканирате всички и да ги прегледате, няма да ви помогне много).

Накратко, разделянето им е валидна оптимизация, но трябва да направите вашите индекси по-добри за вашите заявки, преди действително да решите да поемете по този път, което считам за драстична мярка (индекс на цената на продукта може да ви помогне повече в този случай) .

Използването на expand() може да ви помогне да разберете как работят заявките. Някои основни положения са:Искате ниско съотношение nscanned към n, в идеалния случай. Обикновено не искате scanAndOrder =true и не искате BasicCursor (това означава, че изобщо не използвате индекс).




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Рамка за агрегиране на Mongo, сортиране и след това групиране не работи

  2. внедряване на mongodb distinct() в Meteor на сървъра?

  3. MongoDB придобива mLab  –  Какви са различните алтернативи за хостинг на MongoDB?

  4. Mongoexport, използващ $gt и $lt ограничения за период от време

  5. Може ли mongorestore да приеме един единствен аргумент URL вместо отделни аргументи?