sql >> Databasteknik >  >> NoSQL >> MongoDB

NoSQL - MongoDB vs CouchDB

Se följande länkar

Uppdatera :Jag hittade bra jämförelse av NoSQL databaser.

MongoDB (3.2)

  • Skrivet i:C++
  • Huvudpunkt:JSON-dokumentarkiv
  • Licens:AGPL (drivrutiner:Apache)
  • Protokoll:Anpassat, binärt (BSON)
  • Master/slav-replikering (automatisk failover med replikuppsättningar)
  • Sharding inbyggd
  • Frågor är javascript-uttryck
  • Kör godtyckliga javascript-funktioner på serversidan
  • Har geospatial indexering och frågor
  • Flera lagringsmotorer med olika prestandaegenskaper
  • Prestanda framför funktioner
  • Dokumentvalidering
  • Journering
  • Kraftfullt ramverk för aggregering
  • På 32-bitars system, begränsat till ~2,5 Gb
  • Textsökning integrerad
  • GridFS för att lagra big data + metadata (faktiskt inte en FS)
  • Medveten om datacenter

Används bäst :Om du behöver dynamiska frågor. Om du föredrar att definiera index, inte kartlägga/reducera funktioner. Om du behöver bra prestanda på en stor DB. Om du ville ha CouchDB, men dina data ändras för mycket, fyller diskar.

Till exempel :För det mesta som du skulle göra med MySQL eller PostgreSQL, men att ha fördefinierade kolumner håller dig verkligen tillbaka.

CouchDB (1.2)

  • Skrivet på:Erlang
  • Huvudpunkt:DB-konsistens, användarvänlighet
  • Licens:Apache
  • Protokoll:HTTP/REST
  • Dubbelriktad (!) replikering,
  • kontinuerlig eller ad hoc,
  • med konfliktdetektering,
  • alltså master-master replikering. (!)
  • MVCC - skrivoperationer blockerar inte läsningar
  • Tidigare versioner av dokument finns tillgängliga
  • Endast kraschdesign (pålitlig)
  • Behöver komprimeras då och då
  • Visningar:inbäddad karta/förminska
  • Formatera vyer:listor och program
  • Verifiering av dokument på serversidan möjlig
  • Autentisering möjlig
  • Realtidsuppdateringar via '_changes' (!)
  • Hantera bilagor

Används bäst :För att ackumulera, ibland ändrande data, på vilka fördefinierade frågor ska köras. Platser där versionshantering är viktig.

Till exempel :CRM, CMS-system. Master-master-replikering är en särskilt intressant funktion som möjliggör enkel distribution på flera platser.



  1. MongoDB NodeJS Process slut på minne

  2. MongoException:nolllängdsnycklar är inte tillåtna, använde du $ med dubbla citattecken?

  3. Jämför två matrisfält i samma dokument

  4. Är det möjligt att skapa flera cachebutiker med Springs cacheabstraktion med redis?