sql >> Databáze >  >> NoSQL >> MongoDB

Je v pořádku dotazovat se na MongoDB vícekrát na požadavek?

Chcete-li odpovědět na otázku o $in....

Provedl jsem několik testů výkonu s následujícím scénářem:

~24 milionů dokumentů v kolekci
Vyhledejte 1 milion těchto dokumentů na základě klíče (indexovaného)
Pomocí ovladače CSharp z .NET

Výsledky:
Dotaz 1 najednou, jedno vlákno:109s
Dotaz 1 najednou, více vláken:48s
Dotazy 100K najednou pomocí $in, jedno vlákno=20s
Dotazování 100 kB najednou pomocí $in, vícevláknové=9s

Takže znatelně lepší výkon při použití velkého $in (omezeno na maximální velikost dotazu).

Aktualizace: V návaznosti na komentáře níže o tom, jak si $in vede s různými velikostmi bloků (dotazy s více vlákny):

Dotazování 10 najednou (100 000 dávek) =8,8 s
Dotazování 100 najednou (10 000 dávek) =4,32 s
Dotazování 1 000 najednou (1 000 dávek) =4,31 s
Dotaz 100 najednou (100 dávek) =8,4 s
Dotazování 100 000 najednou (10 dávek) =9 s (na původní výsledky výše)

Zdá se tedy, že existuje sladká tečka pro to, kolik hodnot vložit do klauzule $in vs. počet zpátečních cest




  1. MongoDB:Jedinečný klíč ve vloženém dokumentu

  2. Jak monitorovat Redis jako queue engine pomocí cli podobného beanstalkd?

  3. MongoDB $ne Operátor agregačního potrubí

  4. Výukový program MongoDB pro rok 2022 – Zjistěte, co je MongoDB?