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

NoSQL — MongoDB kontra CouchDB

Zobacz następujące linki

Aktualizacja :Znalazłem świetne porównanie NoSQL bazy danych.

MongoDB (3.2)

  • Napisane w:C++
  • Główny punkt:magazyn dokumentów JSON
  • Licencja:AGPL (Sterowniki:Apache)
  • Protokół:niestandardowy, binarny (BSON)
  • Replikacja master/slave (automatyczne przełączanie awaryjne z zestawami replik)
  • Wbudowane sharding
  • Zapytania są wyrażeniami javascript
  • Uruchom dowolne funkcje javascript po stronie serwera
  • Ma indeksowanie i zapytania geoprzestrzenne
  • Wiele silników pamięci masowej o różnych charakterystykach wydajności
  • Wydajność nad funkcjami
  • Weryfikacja dokumentów
  • Dziennik
  • Potężna struktura agregacji
  • W systemach 32-bitowych, ograniczona do ~2,5 Gb
  • Zintegrowane wyszukiwanie tekstu
  • GridFS do przechowywania dużych zbiorów danych + metadanych (a właściwie nie FS)
  • Świadomość centrum danych

Najlepiej używany :Jeśli potrzebujesz dynamicznych zapytań. Jeśli wolisz definiować indeksy, a nie funkcje mapowania/redukowania. Jeśli potrzebujesz dobrej wydajności na dużej bazie danych. Jeśli chciałeś CouchDB, ale twoje dane zmieniają się za bardzo, zapełniając dyski.

Na przykład :W przypadku większości rzeczy, które zrobiłbyś z MySQL lub PostgreSQL, ale posiadanie predefiniowanych kolumn naprawdę Cię powstrzymuje.

CouchDB (1.2)

  • Napisane w:Erlang
  • Główny punkt:spójność bazy danych, łatwość użycia
  • Licencja:Apache
  • Protokół:HTTP/REST
  • Dwukierunkowa (!) replikacja,
  • ciągły lub doraźny,
  • z wykrywaniem konfliktów,
  • więc replikacja master-master. (!)
  • MVCC - operacje zapisu nie blokują odczytów
  • Poprzednie wersje dokumentów są dostępne
  • Projekt tylko w przypadku awarii (niezawodny)
  • Wymaga zagęszczania od czasu do czasu
  • Widoki:osadzona mapa/zmniejszenie
  • Widoki formatowania:listy i programy
  • Możliwa walidacja dokumentów po stronie serwera
  • Możliwe uwierzytelnienie
  • Aktualizacje w czasie rzeczywistym przez „_changes” (!)
  • Obsługa załączników

Najlepiej używany :Do gromadzenia, okazjonalnie zmieniających się danych, na których mają być uruchamiane predefiniowane zapytania. Miejsca, w których wersjonowanie jest ważne.

Na przykład :systemy CRM, CMS. Replikacja master-master jest szczególnie interesującą funkcją, umożliwiającą łatwe wdrożenia w wielu lokalizacjach.



  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. MongoDB:forEach vs fetch + each

  2. MongoDB C# Driver „Nie znaleziono kursora”

  3. Jak sprawdzić, czy serializator mongodb jest już zarejestrowany?

  4. Błąd agregacji MongoDb $match :Argumenty muszą być zagregowanymi operatorami potoku

  5. Odwoływanie się do innych dokumentów za pomocą ciągu znaków, a nie ObjectId