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

mongodb zła wydajność

MongoDB ma globalną blokadę zapisu . Oznacza to, że tylko jedna z Twoich aktualizacji może być kontynuowana na raz.

db.serverStatus() polecenie może pomóc w zdiagnozowaniu problemów z globalną blokadą zapisu.

Oto kilka rzeczy, które możesz wypróbować:

1) Upewnij się, że używasz mongodb 2.0. Ma lepszą współbieżność niż starsze wersje. 2.2 będzie miał jeszcze lepszą współbieżność.

2) Ustaw w kolejce swoje zapisy, aby były asynchroniczne, i wykonuj je wszystkie za pomocą jednego wątku. Może to pomóc w przypadku współbieżności, ponieważ zazwyczaj tylko jeden wątek będzie jednocześnie próbował użyć globalnej blokady zapisu.

3) Jeśli używasz najnowszej wersji i nie możesz pisać w jednym wątku, rozważ sharding. Sharding to znacznie więcej niż tylko rozmiar; jest co najmniej tak samo ważne dla współbieżności zapisu. Jeśli shardujesz, każdy segment będzie działał we własnym procesie z własną globalną blokadą zapisu. Umożliwi to całemu systemowi przetwarzanie większej liczby zapisów.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. findOne działa, ale nie pobierz wszystkiego/znajdź

  2. Automatycznie usuwaj obiekty odniesienia po usunięciu w MongoDB

  3. Liczba dokumentów Mongodb

  4. MongoDB aktualizuje obiekt tablicy w tablicy

  5. jak odpytywać obiekty podrzędne w mongodb