Hvilken database er best? MongoDB vs PostgreSQL
SQL eller NoSQL? Selv om disse to databasene har noen fellestrekk, er det en av dem som passer bedre for deg, avhengig av hva du skal bruke den til. Sammenligningen mellom MongoDB og PostgreSQL nedenfor fokuserer hovedsakelig på hastighet og sikkerhet.
MongoDB: Horisontal skalering og maksimal fleksibilitet
For å forstå de ulike metodene som inngår i denne sammenligningen, gir vi deg en kort oversikt over databasene MongoDB og PostgreSQL. MongoDB har fått navnet sitt fra det engelske ordet «humongous». Systemet ble lansert i 2009 av 10gen (nå MongoDB Inc.). Det er utviklet for å gjøre det mulig for brukere å håndtere enorme datamengder på en oversiktlig og konsis måte. For å gjøre dette mulig er NoSQL-databasen spesielt fleksibel og kan enkelt skaleres. De strukturerte, semi-strukturerte eller ustrukturerte dataene lagres i det JSON-lignende formatet BSON i form av dokumenter. MongoDB ble skrevet i C++ og distribueres fortsatt over hele verden under open source SSPL.
PostgreSQL: En antatt gammel kjent med moderne fordeler
I vår sammenligning mellom MongoDB og PostgreSQL har den andre løsningen en helt annen tilnærming. PostgreSQL fungerer fullstendig relasjonelt og plattformuavhengig, selv om ikke-relasjonelle datatyper også støttes. Systemet ble først lansert i 1996 og er, i hvert fall delvis, basert på databaser som har blitt utviklet ved University of Berkeley siden 1980-tallet. Systemet, som vedlikeholdes av PostgreSQL Global Development Group, er fortsatt åpen kildekode i dag. PostgreSQL hevder å være den mest avanserte åpen kildekode-databasen i verden. Det som er sikkert, er at den er verdsatt over hele verden for sin fleksibilitet og stabilitet. Administrasjonssystemet er skrevet i C og kalles ofte bare «Postgres».
Hva brukes MongoDB og PostgreSQL til?
Ved første øyekast ser det ut til at vår sammenligning mellom MongoDB og PostgreSQL tyder på at begge databasene kan brukes til lignende formål. Begge løsningene er gjennomtenkte, svært funksjonelle og relativt fleksible databaser som sikrer orden og oversikt selv når man arbeider med store eller økende datamengder. En mer detaljert analyse viser at bedrifter må ta en beslutning basert på egne krav om hvem som har fordelen i sammenligningen mellom MongoDB og PostgreSQL, og hvilken database som tilfredsstiller deres behov.
NoSQL-løsningen scorer spesielt godt hvis du trenger et system som kan vokse i takt med dine behov. Dette gjelder ikke bare den rene datamengden, men også ulike datatyper. MongoDB har horisontal skalerbarhet, noe som gjør systemet til den ideelle løsningen i e-handelssektoren, hvor transaksjonsdata må overføres raskt og sikkert. Disse fordelene, kombinert med fleksibiliteten når det gjelder datatyper, gjør MongoDB til et utmerket valg for innholdsstyringssystemer. Hvis du trenger konfigurasjonsalternativer og omfattende analysefunksjoner i sanntid, er MongoDB verdt å vurdere.
PostgreSQL er egnet for omfattende webapplikasjoner og gir verdifulle ressurser for e-handel. Systemet er et godt valg for applikasjoner i skyen og tingenes internett. PostgreSQL er også svært effektivt i samarbeid med andre databaser.
Funksjonalitet
Veiene som MongoDB og PostgreSQL har valgt for å nå sine mål, er svært forskjellige. Som en ren NoSQL-løsning, avstår MongoDB helt fra rigide relasjonelle tabeller og arbeider i stedet på en dokumentorientert måte. Disse binære JSON-dokumentene (kalt BSON) blir deretter oppsummert i samlinger. Systemet er basert på nøkkel-verdipar. Nøkkelen består her av en tegnstreng, mens verdiene kan være andre dokumenter, boolske verdier, tall eller helt andre filtyper. Strukturen i et JSON-dokument kan enkelt endres ved å slette eller legge til enkeltfelt. Det finnes en tekstsøkfunksjon for å identifisere bestemte dokumenter. Strukturert, semistrukturert og ustrukturert data tas i betraktning.
Til sammenligning følger PostgreSQL en relasjonell tilnærming. Selv om det finnes mange NoSQL-alternativer, har bruk av et tabellbasert system også sine fordeler. En viktig funksjon i PostgreSQL er at administrasjonssystemet er mye mer fleksibelt enn andre SQL-alternativer og tillater kolonner med underværdier. Databasestyringssystemet er også avhengig av fremmednøkler og utløsere. Spørsmålene stilles ved hjelp av det klassiske klient-server-prinsippet. Filer og tilkoblinger administreres via den sentrale serverkomponenten «postmaster». Ulike klienter sender deretter sine spørringer. PostgreSQL støtter mange datatyper, men disse må struktureres på forhånd.
Ytelse
Navnet MongoDB antyder at det kan håndtere enorme datamengder uten større problemer. Systemet lever absolutt opp til dette kravet. Databasen er horisontalt skalerbar og ikke avhengig av datakraften til en enkelt maskin. Takket være kombinasjonen av alternativer med et bredt spekter av maskinvare, er det teoretisk sett ingen grenser for ytelsen og lagringsvolumet. Selv når mange brukere har tilgang til data samtidig, forblir søkehastigheten høy. Sharding fordeler belastningen på forskjellige datamaskiner. Dette bidrar ikke bare til bedre ytelse, men gir også best mulig beskyttelse mot mulige serverfeil.
PostgreSQL, på den annen side, skalerer data vertikalt og kan derfor ikke helt holde tritt med ytelsen til NoSQL-løsningen. Likevel er ytelsen til det relasjonelle systemet imponerende. Det er for eksempel mulig å utføre skrive- og leseoperasjoner samtidig. Dataautentisering og grundig dataanalyse med lav latens er også ofte bedre med PostgreSQL enn med mange av de kommersielle konkurrentene. Databasen fungerer med komplekse datatyper og spørringer og kan derfor også score poeng når det gjelder big data. Ekstra ressurser som minne eller CPU-er kan legges til for å møte økende krav. Funksjoner som just-in-time-kompilering og tabellpartisjonering hjelper også når man behandler store datamengder.
Kompatibilitet
Begge løsningene fungerer på tvers av plattformer og kan derfor brukes på Linux, macOS, Solaris og Windows. PostgreSQL går enda lenger og fungerer også på FreeBSD, HP-UX, NetBSD og OpenBSD. SQL-databasen er ACID-kompatibel av natur (Atomicity, Consistency, Isolation, Durability), mens MongoDB i det minste tilbyr denne muligheten. Begge systemene støtter en rekke programmeringsspråk, men valget i sammenligningen mellom MongoDB og PostgreSQL er betydelig større med det yngre systemet.
| Programmeringsspråk | Støttet av Mongo DB | Støttet av PostgreSQL |
|---|---|---|
| Actionscript | ✓ | ✗ |
| C | ✓ | ✓ |
| C | ✓ | ✗ |
| C | ✓ | ✓ |
| Clojure | ✓ | ✗ |
| ColdFusion | ✓ | ✗ |
| D | ✓ | ✗ |
| Dart | ✓ | ✗ |
| Delphi | ✓ | ✓ |
| Erlang | ✓ | ✗ |
| Go | ✓ | ✗ |
| Groovy | ✓ | ✗ |
| Haskell | ✓ | ✗ |
| Java | ✓ | ✓ |
| JavaScript | ✓ | ✓ |
| Kotlin | ✓ | ✗ |
| Lisp | ✓ | ✗ |
| Lua | ✓ | ✗ |
| MatLab | ✓ | ✗ |
| .net | ✗ | ✓ |
| Perl | ✓ | ✓ |
| PHP | ✓ | ✓ |
| PowerShell | ✓ | ✗ |
| Prolog | ✓ | ✗ |
| Python | ✓ | ✓ |
| R | ✓ | ✗ |
| Ruby | ✓ | ✗ |
| Scala | ✓ | ✗ |
| Smalltalk | ✓ | ✗ |
| Swift | ✓ | ✗ |
| Tcl | ✗ | ✓ |
Sikkerhet
En av de viktigste grunnene til at brukere velger PostgreSQL, er databasens sterke sikkerhetsarkitektur. Dette inkluderer Lightweight Directory Access Protocol (LDAP) og Pluggable Authentication Module (PAM), samt vertsbasert autentisering, datakryptering og SSL-sertifikater. Den forhåndsdefinerte databasestrukturen sikrer også at dataene dine alltid er beskyttet på best mulig måte. MongoDB har også en rekke sikkerhetsfunksjoner, inkludert kryptering på feltnivå og på klientsiden. Distribusjonen til forskjellige servere gir også minst et høyt nivå av pålitelighet og sikrer at dataene er tilgjengelige igjen uten store forsinkelser.
Hva er de ulike versjonene av MongoDB og PostgreSQL?
En av likhetene mellom MongoDB og PostgreSQL er deres åpne kildekode-tilnærming. Begge systemene er derfor ikke bare åpne kildekode, men også tilgjengelige gratis, i hvert fall i sin grunnleggende versjon. Selv om dette også betyr at det ikke er profesjonell støtte i dette tilfellet, kompenserer to dedikerte fellesskap for denne mangelen og gir også gjerne råd til nykommere. Dokumentasjonen og utvidelsesmulighetene er også noe mer omfattende på grunn av PostgreSQLs lengre modenhet på markedet. MongoDB tilbyr også ulike Pro-versjoner. Versjonene «Enterprise» og «Atlas» (for bruk i skyen) er avgiftsbelagte, men har også noen tilleggsfunksjoner og omfattende support.
Hvilke selskaper bruker de to databasene?
Selv om sammenligningen mellom MongoDB og PostgreSQL viser at de to løsningene har to svært forskjellige tilnærminger, har de likevel én ting til felles, nemlig at mange store selskaper er helt eller delvis avhengige av tjenestene og fordelene som de to databasene tilbyr dem.
De mest kjente selskapene som bruker MongoDB, er blant annet følgende:
- Adobe
- Amadeus
- AppScale
- Craftbase
- Disney
- Etsy
- Foursquare
- Lyft
- MTV
- The New York Times
- Via Varejo
PostgreSQL brukes blant annet av følgende selskaper og plattformer:
- Apple
- IMDB
- Runkeeper
- Skype
- Spotify
- Twitch