SQL või NoSQL? Kuigi neil kahel and­me­baasil on ühiseid jooni, on olemas teie va­ja­dus­tele paremini sobiv valik, sõltuvalt ka­su­tusots­tar­best. Järgnev MongoDB ja PostgreSQL võrdlus keskendub peamiselt kiiruse ja tur­va­li­suse te­gu­ri­tele.

MongoDB: ho­ri­son­taalne ska­lee­ri­mine ja mak­si­maalne paind­lik­kus

Selle võrdluse erinevate meetodite mõist­miseks anname teile lü­hi­üle­vaate MongoDB ja PostgreSQL and­me­baasi­dest. MongoDB on saanud oma nime inglise keele sõnast „humongous” (hiig­las­lik). Süsteemi avaldas 2009. aastal 10gen (nüüd MongoDB Inc.). See on loodud selleks, et või­mal­dada ka­su­ta­ja­tel hallata suuri and­me­hulki selgel ja üle­vaat­li­kul viisil. Selleks on NoSQL-andmebaas eriti paindlik ja kergesti ska­lee­ri­tav. Struk­tu­ree­ri­tud, pool­st­ruk­tu­ree­ri­tud või struk­tu­ree­ri­mata andmed sal­ves­ta­takse JSON-laadses BSON-vormingus do­ku­men­tide kujul. MongoDB on kir­ju­ta­tud C++ keeles ja le­vi­ta­takse endiselt üle maailma avatud läh­te­koo­diga SSPL-i all.

PostgreSQL: väi­de­ta­valt vana, kuid kaas­aeg­sete eelistega

Meie MongoDB ja PostgreSQL võrdluses on teine lahendus täiesti erinev. PostgreSQL toimib täie­li­kult re­lat­sioo­ni­li­selt ja plat­vor­mi­ül­ese, kuigi toetab ka mit­te­su­hete and­me­tüüpe. Süsteem ilmus es­ma­kord­selt 1996. aastal ja põhineb vähemalt osaliselt Berkeley ülikoolis alates 1980. aastatest arendatud and­me­baasi­del. PostgreSQL Global De­ve­lop­ment Groupi hallatav süsteem on tä­na­päe­val endiselt avatud läh­te­koo­diga. PostgreSQL väidab end olevat maailma kõige arenenum avatud läh­te­koo­diga andmebaas. Kindel on see, et seda hin­na­takse kogu maailmas selle paind­lik­kuse ja sta­biil­suse poolest. Hal­dus­süs­teem on kir­ju­ta­tud C-keeles ja seda ni­me­ta­takse sageli lihtsalt „Postgre­siks”.

Milleks ka­su­ta­takse MongoDB ja PostgreSQL?

Es­ma­pil­gul näib meie MongoDB ja PostgreSQL võrdlus viitavat, et mõlemat and­me­ba­asi saab kasutada sar­nas­teks ees­mär­ki­deks. Mõlemad la­hen­dused on hästi lä­bi­mõel­dud, väga funkt­sio­naal­sed ja suh­te­li­selt paind­li­kud and­me­baasid, mis tagavad korra ja ülevaate isegi suurte või kasvavate and­me­mah­tude puhul. Täpsem analüüs näitab, et et­te­võt­ted peavad oma nõudmiste alusel otsustama, kummal on MongoDB ja PostgreSQL võrdluses eelis ja milline andmebaas vastab nende va­ja­dus­tele.

NoSQL-lahendus on eriti sobiv, kui vajate süsteemi, mis suudab kasvada koos teie nõud­mis­tega. See kehtib mitte ainult andmete mahu, vaid ka erinevate and­me­tüü­pide puhul. MongoDB on ho­ri­son­taal­selt ska­lee­ri­tav, mis teeb süs­tee­mist ideaalse lahenduse e-kau­ban­dus­sek­to­ris, kus te­hin­gu­and­meid tuleb edastada kiiresti ja tur­va­li­selt. Need eelised koos and­me­tüü­pide paind­lik­ku­sega tagavad, et MongoDB on suu­re­pä­rane valik sisu haldamise süs­teemi­dele. Kui vajate kon­fi­gu­rat­siooni võimalusi ja ula­tus­likke analüüsi funkt­sioone reaalajas, on MongoDB kaalumist väärt.

PostgreSQL sobib ula­tus­li­kele vee­bi­ra­ken­dus­tele ja pakub väär­tus­likke ressursse e-kau­ban­dusele. Süsteem on hea valik pilve- ja asjade interneti ra­ken­dus­tele. PostgreSQL on ka väga efek­tiivne koostöös teiste and­me­baasi­dega.

Funkt­sio­naal­sus

MongoDB ja PostgreSQL kasutavad oma ees­mär­kide saa­vu­ta­miseks väga erinevaid lä­he­ne­mis­viise. Puhta NoSQL-la­hen­dus­ena loobub MongoDB täie­li­kult jäikadest re­lat­sioo­ni­lis­test ta­be­li­test ja töötab selle asemel do­ku­men­di­põ­hi­selt. Need binaarsed JSON-do­ku­men­did (nn BSON) koon­da­takse seejärel kogudesse. Süsteem tugineb võti-väärtuse paaridele. Võti koosneb siin mär­gi­ja­dast; väärtused võivad olla teised do­ku­men­did, booli väärtused, numbrid või täiesti erinevad fai­li­tüü­bid. JSON-dokumendi struk­tuuri saab hõlpsasti muuta, kus­tu­ta­des või lisades üksikuid välju. Konk­reet­sete do­ku­men­tide leid­miseks on olemas teks­ti­ot­sing. Arvesse võetakse struk­tu­ree­ri­tud, pool­st­ruk­tu­ree­ri­tud ja struk­tu­ree­ri­mata andmeid.

Võrd­lu­seks järgib PostgreSQL re­lat­sioo­ni­list lä­he­ne­mis­viisi. Kuigi on olemas mitmeid NoSQL al­ter­na­tiive, on ta­be­li­põ­hise süsteemi ka­su­ta­misel ka oma eelised. PostgreSQLi oluline omadus on see, et hal­dus­süs­teem on palju paind­li­kum kui teised SQL-või­ma­lu­sed ja võimaldab veerge ala­väär­tus­tega. And­me­ba­asi hal­dus­süs­teem tugineb ka võõr­ke­ha­dele ja trigge­reidele. Päringud tehakse klas­si­ka­lise kliendi-serveri põhimõtte alusel. Faile ja ühendusi haldab keskne ser­ve­ri­kom­po­nent „post­mas­ter”. Erinevad kliendid saadavad seejärel oma päringud. PostgreSQL toetab mitmeid and­me­tüüpe, kuigi need peavad olema eelnevalt struk­tu­ree­ri­tud.

Jõudlus

MongoDB nimi viitab sellele, et see suudab ilma suuremate prob­leemi­deta töödelda suuri and­me­hulki. Süsteem vastab täie­li­kult sellele nõud­misele. Andmebaas on ho­ri­son­taal­selt ska­lee­ri­tav ega sõltu üksiku masina ar­vu­tus­võim­susest. Tänu erinevate riist­va­rade kom­bi­nat­sioo­nile ei ole selle jõudlusel ja sal­ves­tus­ma­hul teo­ree­ti­li­selt piire. Isegi kui paljud kasutajad pääsevad andmetele sa­ma­aeg­selt ligi, jääb päringute kiirus endiselt kõrgeks. Sharding jaotab koormuse erinevate arvutite vahel. See ei aita mitte ainult jõudlust parandada, vaid pakub ka parimat või­ma­likku kaitset võimalike ser­ve­ri­ri­ke­tega.

PostgreSQL seevastu skaleerib andmeid ver­ti­kaal­selt ja seetõttu ei suuda päris NoSQL-lahenduse jõud­lu­sega sammu pidada. Siiski on re­lat­sioo­ni­lise süsteemi jõudlus mul­je­ta­val­dav. Näiteks on võimalik kir­ju­ta­mis- ja lu­ge­misope­rat­sioone teha sa­ma­aeg­selt. Andmete au­ten­ti­mine ja põhjalik, madala la­tent­su­sega andmete analüüs on PostgreSQL-i puhul sageli paremad kui paljude selle kom­merts­kon­ku­ren­tide puhul. Andmebaas töötab kee­ru­liste and­me­tüü­pide ja pä­rin­gu­tega ning saab seetõttu punkte ka suurand­mete puhul. Suu­re­ne­vate nõudmiste ra­hul­da­miseks on võimalik lisada täien­da­vaid ressursse, nagu mälu või prot­ses­so­rid. Suurte and­me­mah­tude tööt­le­misel on abiks ka sellised funkt­sioo­nid nagu just-in-time kom­pi­lee­ri­mine ja tabelite jagamine.

Ühilduvus

Mõlemad la­hen­dused töötavad eri­ne­va­tel plat­vormi­del ja neid saab seetõttu kasutada Linuxis, macOS-is, Solaris-es ja Windowsis. PostgreSQL läheb veelgi kaugemale ja töötab ka FreeBSD-s, HP-UX-is, NetBSD-s ja OpenBSD-s. SQL-andmebaas on oma olemuselt ACID-vastav (ato­maar­sus, jär­je­pi­de­vus, iso­lee­ri­tus, püsivus), samas kui MongoDB pakub vähemalt seda võimalust. Mõlemad süsteemid toetavad mitmeid prog­ram­mee­ri­mis­keeli, kusjuures MongoDB vs PostgreSQL võrdluses on valik noorema süsteemi puhul oluliselt suurem.

Prog­ram­mee­ri­mis­keel Toetab Mongo DB Toetab PostgreSQL
Ac­tionsc­ript
C
C
C
Clojure
Cold­Fu­sion
D
Dart
Delphi
Erlang
Go
Groovy
Haskell
Java
Ja­vaSc­ript
Kotlin
Lisp
Lua
MatLab
.net
Perl
PHP
PowerS­hell
Prolog
Python
R
Ruby
Scala
Smalltalk
Swift
Tcl

Tur­va­li­sus

Üks olu­li­se­maid põhjusi, miks kasutajad valivad PostgreSQL-i, on and­me­ba­asi tugev tur­va­li­suse ar­hi­tek­tuur. See hõlmab kerget ka­ta­loo­gi­pää­supro­to­kolli (LDAP) ja ühen­da­ta­vat au­ten­ti­mis­moo­du­lit (PAM), samuti hos­ti­põ­hist au­ten­ti­mist, andmete krüp­tee­ri­mist ja SSL-ser­ti­fi­kaate. Eel­de­fi­nee­ri­tud and­me­ba­asi struktuur tagab ka, et teie andmed on alati parimal või­ma­li­kul viisil kaitstud. MongoDB-l on samuti mitmed tur­va­oma­du­sed, seal­hul­gas krüp­tee­ri­mine väljade tasandil ja kliendi poolel. Jaotamine eri­ne­va­tele ser­ve­ri­tele pakub samuti vähemalt kõrget usal­dus­väär­sust ja tagab, et andmed on uuesti kät­te­saa­da­vad ilma suuremate vii­vi­tus­teta.

Millised on MongoDB ja PostgreSQL erinevad ver­sioo­nid?

Üks MongoDB ja PostgreSQLi sarnasusi on nende avatud lähtekood. Mõlemad süsteemid on seega mitte ainult avatud läh­te­koo­diga, vaid ka tasuta kät­te­saa­da­vad, vähemalt oma põhilises ver­sioo­nis. Kuigi see tähendab ka, et antud juhul puudub pro­fes­sio­naalne tugi, kom­pen­see­rivad seda puudust kaks pü­hen­du­nud kogukonda, kes annavad hea meelega nõu ka uus­tul­nu­ka­tele. Do­ku­men­tat­sioon ja laien­da­mis­või­ma­lu­sed on PostgreSQLi pikema tu­ru­küp­suse tõttu ka veidi ula­tus­li­ku­mad. MongoDB pakub ka erinevaid Pro-versioone. Ver­sioo­nid „En­terprise” ja „Atlas” (pilve ka­su­ta­miseks) on tasulised, kuid neil on ka mõned li­sa­funkt­sioo­nid ja ulatuslik tugi.

Millised et­te­võt­ted kasutavad neid kahte and­me­ba­asi?

Isegi kui MongoDB ja PostgreSQL võrdlus näitab, et need kaks lahendust järgivad kahte väga erinevat lä­he­ne­mis­viisi, on neil siiski üks ühine joon: paljud suured et­te­võt­ted tuginevad täie­li­kult või osaliselt nende kahe and­me­ba­asi pa­ku­ta­va­tele tee­nus­tele ja eelistele.

Kõige tuntumad et­te­võt­ted, mis kasutavad MongoDB-d, on järgmised:

  • Adobe
  • Amadeus
  • AppScale
  • Craftbase
  • Disney
  • Etsy
  • Foursquare
  • Lyft
  • MTV
  • The New York Times
  • Via Varejo

PostgreSQL-i kasutavad muu hulgas järgmised et­te­võt­ted ja plat­vor­mid:

  • Apple
  • IMDB
  • Instagram
  • Reddit
  • Runkeeper
  • Skype
  • Spotify
  • Twitch
Go to Main Menu