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