MongoDB
 sql >> Baza danych >  >> NoSQL >> MongoDB

Czy można wielokrotnie wysyłać zapytania do bazy danych MongoDB na żądanie?

Aby odpowiedzieć na pytanie o $in....

Przeprowadziłem kilka testów wydajności w następującym scenariuszu:

~24 miliony dokumentów w kolekcji
Wyszukaj 1 milion tych dokumentów na podstawie klucza (indeksowane)
Używając sterownika CSharp z platformy .NET

Wyniki:
Zapytania 1 na raz, jednowątkowe:109s
Zapytania 1 na raz, wielowątkowe:48s
Zapytania 100K na raz przy użyciu $in, jednowątkowe=20s
Zapytania 100K na raz przy użyciu $in, wielowątkowość=9s

Tak więc zauważalnie lepsza wydajność przy użyciu dużego $in (ograniczonego do maksymalnego rozmiaru zapytania).

Aktualizacja: Kontynuując poniższe komentarze na temat tego, jak $in radzi sobie z różnymi rozmiarami porcji (zapytania wielowątkowe):

Zapytanie 10 naraz (100000 partii) =8,8 s
Zapytania 100 na raz (10000 partii) =4,32 s
Zapytania 1000 na raz (1000 partii) =4,31 s
Zapytania 10000 na raz (100 partii) =8,4 s
Odpytywanie 100000 na raz (10 partii) =9 s (na oryginalne wyniki powyżej)

Wygląda więc na to, że istnieje idealne miejsce na to, ile wartości należy połączyć w klauzulę $in w porównaniu z liczbą podróży w obie strony




  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Czy istnieje możliwość wygenerowania duplikatu Mongo ObjectId w dwóch różnych kolekcjach?

  2. Czy istnieje sposób, aby uniemożliwić MongoDB dodawanie liczby mnogiej do nazw kolekcji?

  3. Mongoose zaludniają po zapisaniu

  4. Pula połączeń bazy danych MongoDB Java Driver z Tomcat

  5. MongoDB atomowe findOrCreate:findOne, wstaw, jeśli nie istnieje, ale nie aktualizuj