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

Jak poprawić wydajność update() i save() w MongoDB?

Jest bardzo prawdopodobne, że w MongoDB trafiasz w bardzo powszechne wąskie gardło. Ponieważ bardzo często aktualizujesz dokumenty, dodając ciągi, istnieje duża szansa, że ​​brakuje Ci miejsca na ten dokument i zmuszasz bazę danych do ciągłego przenoszenia tego dokumentu do innego miejsca w pamięci\dysku przez przepisanie go na końcu pliku danych.

Dodanie indeksów może tylko pogorszyć wydajność zapisu, więc nie pomoże to poprawić wydajności, chyba że jesteś intensywnie czytany.

Rozważyłbym zmianę logiki aplikacji, aby to zrobić:

  1. Indeks w polu słów kluczowych
  2. Przed wstawieniem czegokolwiek do bazy danych za każdym razem, gdy wykryjesz tweeta, wyszukaj dokument zawierający słowo kluczowe. Jeśli nie istnieje, wstaw nowy dokument, ale uzupełnij ids właściwość, dodając całą masę fałszywych ciągów do tablicy. Następnie natychmiast po wstawieniu usuń wszystkie identyfikatory z tej tablicy. Spowoduje to, że mongodb przydzieli dodatkowe miejsce dla całego dokumentu, tak że kiedy zaczniesz dodawać identyfikatory do pola ids, będzie miał dużo miejsca na rozwój.
  3. Wstaw identyfikator tweeta do ids pole


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB $przytnij

  2. Śledzić wydajność MongoDB?

  3. Sharding w MongoDB

  4. Jak używać $regex wewnątrz $lub jako wyrażenia agregacji?

  5. Konwersja DBObject do Java Object podczas pobierania wartości z MongoDB