sql >> Database >  >> NoSQL >> MongoDB

Voor- en nadelen van MongoDB?

Enkele algemene punten over MongoDB

Voordelen:

  • schemaloos. Als u een flexibel schema heeft, is dit ideaal voor een documentopslag zoals MongoDB. Dit is moeilijk op een performante manier te implementeren in RDBMS
  • gemakkelijk uitschalen. Schaal leest met behulp van replica sets. Schaal schrijven met behulp van sharding (automatische balancering). Start gewoon een andere machine en u bent vertrokken. Meer machines toevoegen =meer RAM toevoegen waarover u uw werkset kunt verdelen.
  • kosten. Hangt natuurlijk af van welk RDBMS, maar MongoDB is gratis en kan op Linux draaien, ideaal om op een goedkopere basiskit te draaien.
  • u kunt kiezen welk niveau van consistentie u wilt, afhankelijk van de waarde van de gegevens (bijv. snellere prestaties =vuur en inserts vergeten naar MongoDB, tragere prestaties =wacht tot insert is gerepliceerd naar meerdere knooppunten voordat u terugkeert)

Nadelen:

  • De gegevensgrootte in MongoDB is doorgaans groter vanwege b.v. elk document heeft veldnamen opgeslagen
  • minder flexibiliteit bij het bevragen (bijv. geen JOIN's)
  • geen ondersteuning voor transacties - bepaalde atomaire bewerkingen worden ondersteund, op een enkel documentniveau
  • op dit moment is Map/Reduce (bijvoorbeeld om aggregaties/data-analyse te doen) OK, maar niet razendsnel. Dus als dat nodig is, moet er misschien iets als Hadoop aan de mix worden toegevoegd
  • minder actuele informatie beschikbaar/snel evoluerend product

Ik heb onlangs mijn gedachten geblogd op MongoDB als iemand met een SQL Server-achtergrond, dus misschien ben je daarin geïnteresseerd (hierboven zijn slechts enkele van de belangrijkste punten).

Als u op zoek bent naar een antwoord "Is MongoDB beter dan RDBMS" - dan is er IMHO geen antwoord. NoSQL-technologieën zoals MongoDB bieden een alternatief dat de RDBMS-technologieën aanvult. De ene is misschien beter geschikt voor een bepaald doel dan de andere, dus het gaat erom dat u een beroep doet op wat het beste voor u is voor een bepaalde vereiste.




  1. Selecteer de laatste N records van MongoDB met node.js

  2. AWS Lambda (Node.js, v. 8.10) &Mongoose:MongoNetworkError verbinding met DB time-out

  3. Azure VM maakt geen verbinding met Azure Redis Cache, maar lokaal maakt verbinding met Azure Redis Cache

  4. kan mongodb niet starten als sudo