PostgreSQL — baza podataka iza vašeg sajta i online prodavnice
Svaki proizvod, narudžba, lead i stranica koje kreirate na 4buildsite žive u PostgreSQL bazi podataka. Nikada ne morate da je administrirate — ali vrijedi znati zašto smo je izabrali: transakcioni integritet za plaćanja, pouzdanost dokazana tokom skoro 30 godina i nula troška licence u vašoj cijeni.
Šta je PostgreSQL i šta čuva za vaš sajt
PostgreSQL je open-source relacioni sistem za upravljanje bazama podataka, u neprekidnom razvoju od 1996. — sa korijenima u projektu POSTGRES na Univerzitetu Kalifornije u Berkliju (1986). Na 4buildsite, PostgreSQL je mjesto gdje žive podaci vašeg sajta: proizvodi i zalihe, narudžbe i plaćanja, leadovi iz formulara i sadržaj stranica. Vi radite u vizuelnom editoru; PostgreSQL čuva svaku izmjenu na sigurnom.
Zašto je ovo važno vama ako niste programer? Zato što se razlika između ozbiljne i krhke baze podataka vidi upravo u teškim trenucima: vrhunac saobraćaja tokom promocije, plaćanje ponovljeno dvaput, restart servera. PostgreSQL je projektovan da prođe kroz te trenutke bez gubitka ili oštećenja podataka — zbog čega ga kompanije poput Instagrama i Reddita koriste u velikom obimu, a istorijski je pokretao i infrastrukturu Skypea.
- Proizvodi, varijante i zalihe — kompletan katalog vaše prodavnice
- Narudžbe, Stripe plaćanja i fakture — vaša istorija prodaje, bez rupa
- Leadovi iz formulara — svaki zahtjev za ponudu zagarantovano je sačuvan
- Sadržaj stranica i templejta — sve što uređujete u vizuelnom editoru
- Domeni, podešavanja i objavljene verzije vašeg sajta
Narudžbe i plaćanja bez oštećenih podataka — ACID integritet
Kada kupac pošalje narudžbu, istovremeno se dešava više stvari: zaliha se smanjuje, narudžba se kreira, Stripe plaćanje se evidentira. PostgreSQL ih izvršava kao jednu transakciju: ili se dese sve, ili nijedna. Ako plaćanje propadne na pola puta, zaliha se automatski vraća na početnu vrijednost. To ponašanje zove se ACID (Atomicity, Consistency, Isolation, Durability), a PostgreSQL ga garantuje na svakoj tabeli, bez posebne konfiguracije.
Pored transakcija, PostgreSQL sprovodi pravila integriteta direktno u bazi: stavka narudžbe ne može upućivati na proizvod koji ne postoji, zaliha ne može postati negativna, e-mail naloga ne može se duplirati. Ta ograničenja (foreign key, check, unique) zaustavljaju loše podatke prije nego što uđu — a ne nakon što pokvare vaš izvještaj o prodaji.
Kod marketplejsova integritet je važan dvostruko: provizije i podijeljena plaćanja putem Stripe Connect-a računaju se iz podataka o narudžbama. Dupla narudžba ili nedosljedan iznos značili bi pogrešnu podjelu novca među prodavcima. PostgreSQL transakcije održavaju te proračune tačnim, narudžbu po narudžbu.
Brza pretraga kataloga i fleksibilan sadržaj
PostgreSQL dolazi sa full-text search mehanizmom: kupci ukucaju „patike za trčanje” i pronalaze prave proizvode, uz rječnike za stemming koji uključuju i rumunski. Ekstenzija pg_trgm dodaje toleranciju na greške u kucanju. Za prodavnicu to znači da se katalog može dobro pretraživati bez posebnog servisa tipa Elasticsearch — dakle manje komponenti koje mogu otkazati i niži troškovi infrastrukture.
Sadržaj stranica izgrađenih u vizuelnom editoru nema fiksnu strukturu — hero blok, formular i galerija imaju različita polja. PostgreSQL to rješava pomoću JSONB-a: nativno čuvanje JSON-a, indeksiranje GIN indeksima, upitivanje kao bilo koje kolone. Dobijate fleksibilnost dokument baze uz zadržan relacioni integritet za narudžbe i plaćanja — u jednom sistemu, a ne u dva.
- tsvector + rječnici za stemming (uključujući rumunski) — relevantna pretraga kataloga
- pg_trgm — kupci pronalaze proizvod čak i sa greškom u kucanju
- JSONB sa GIN indeksima — fleksibilni blokovi stranica ostaju brzi za upitivanje
Pouzdanost: bekap, oporavak i bez iznenađenja
PostgreSQL svaku izmjenu prvo upisuje u dnevnik (WAL — Write-Ahead Log), a tek zatim u same podatke. Ako se server naglo zaustavi, baza se pri ponovnom pokretanju sama rekonstruiše iz dnevnika, bez oštećenih podataka. Isti mehanizam je osnova na kojoj PostgreSQL gradi point-in-time recovery (PITR) — standardnu mogućnost mehanizma za instalacije koje arhiviraju WAL dnevnik. Na 4buildsite podaci žive na trajnim volumenima, odvojenim od aplikacije, pa restart ili ažuriranje platforme nikada ne dotiče podatke.
PostgreSQL podržava i streaming replikaciju — sinhronizovanu kopiju baze podataka, spremnu da preuzme saobraćaj kada zatreba. Za vaš sajt pouzdanost baze podataka znači stranice koje dosljedno odgovaraju, bez ponovljenih 5xx grešaka.
Skaliranje i troškovi — rast bez računa za licence
Kada vaša prodavnica raste, PostgreSQL raste s njom: indeksi održavaju upite brzim na katalozima sa stotinama hiljada proizvoda, particionisanje dijeli istoriju narudžbi po periodima, a read replike preuzimaju saobraćaj izvještavanja. Instagram i Reddit su skalirali na PostgreSQL-u do stotina miliona korisnika — online prodavnica dostiže granice ove tehnologije mnogo kasnije nego što misli.
PostgreSQL ima besplatnu licencu (PostgreSQL License, u BSD stilu) — bez naknada za licencu i bez komercijalnog vlasnika koji može preko noći promijeniti pravila. Komercijalne baze podataka se obično licenciraju po CPU jezgru, a taj trošak neizbježno završava u cijeni za klijenta. Na 4buildsite baza podataka je uključena u vaš plan, zajedno sa hostingom i SSL-om — bez posebne naknade.
Prednosti i mane
Prednosti
- Pune ACID transakcije — narudžbe i plaćanja ostaju konzistentni čak i kroz greške ili padove servera.
- Pouzdanost dokazana od 1996, u produkciji na Instagramu, Redditu i, istorijski, Skypeu.
- Nativni JSONB — fleksibilan sadržaj stranica bez žrtvovanja relacionog integriteta.
- Ugrađena full-text pretraga, sa rumunskim stemmingom — pretraga kataloga bez posebnog servisa.
- Besplatna licenca — nula troška licence skrivenog u cijeni vašeg plana.
- WAL dnevnik — nakon naglog zaustavljanja servera baza se pri pokretanju sama rekonstruiše, bez oštećenih podataka.
Ograničenja
- Napredna administracija (tuning, replikacija, failover) traži stručnost — na 4buildsite se mi time bavimo, ali self-hosting je zahtjevan.
- Upisi žive na jednom primarnom čvoru — njihovo širenje na više čvorova (sharding) nije nativno i traži dodatne alate.
- Svaka konekcija troši relativno više memorije — veći broj konekcija zahtijeva pooling (PgBouncer).
- Full-text pretraga je dobra, ali slabija od namjenskih mehanizama za naprednu relevantnost i predloge pretrage.
Kratak zaključak
PostgreSQL je standardan izbor za sajtove, online prodavnice, marketplejsove i SaaS platforme gdje se narudžbe, plaćanja i leadovi nikada ne smiju izgubiti. Jednostavnom blogu može biti dovoljno i manje — ali besplatna licenca znači da na 4buildsite dobijate taj nivo sigurnosti svejedno, bez dodatnog troška.
Tabela specifikacija
| Mogućnost | Ograničenje / prag | Tipična upotreba | |
|---|---|---|---|
| Transakcioni integritet | Pun ACID + MVCC, na svakoj tabeli | Veoma duge transakcije zadržavaju resurse | Narudžbe, plaćanja, zalihe |
| JSONB | Nativni JSON, indeksabilan pomoću GIN-a | Veoma složeni JSON upiti sporiji su od klasičnih kolona | Sadržaj stranica, podešavanja, atributi proizvoda |
| Full-text pretraga | tsvector + pg_trgm, višejezična (uključujući rumunski) | Relevantnost slabija od namjenskih mehanizama za pretragu | Pretraga kataloga prodavnice |
| Bekap i replikacija | WAL, PITR, streaming replikacija | Automatski failover traži spoljne alate (npr. Patroni) | Oporavak nakon incidenta, visoka dostupnost |
| Skaliranje | Read replike, particionisanje tabela | Upisi ostaju na primarnom čvoru | Veliki katalozi i istorije narudžbi |
| Trošak | Open-source, besplatna licenca | Pravi trošak su infrastruktura i administracija | Uključeno u planove 4buildsite |
PostgreSQL naspram MySQL-a i MongoDB-a
| Kriterijum | PostgreSQL | MySQL | MongoDB |
|---|---|---|---|
| ACID integritet | Pun, na svakoj tabeli, podrazumijevano | Pun samo sa InnoDB mehanizmom | Transakcije nad više dokumenata tek od v4.0, uz ograničenja |
| Tipovi podataka i JSON | Indeksabilan JSONB + bogati tipovi (array, range) | Validan JSON, indirektno indeksiranje (generisane kolone) | Nativni BSON dokumenti, bez nametnute šeme |
| Full-text pretraga | Ugrađena: tsvector, pg_trgm, višejezični stemming | Osnovna (InnoDB FTS) | Osnovna; napredna (Atlas Search) samo u komercijalnom cloudu |
| Licenca / trošak | PostgreSQL License — besplatna, bez komercijalnog vlasnika | GPL, u vlasništvu Oraclea (komercijalna izdanja) | SSPL — više nije klasična open-source licenca |
| Ekosistem | Snažne ekstenzije (PostGIS, pgvector), podržan u svakom ORM-u | Sveprisutan u klasičnom PHP/WordPress hostingu | Snažan na Node.js-u, uži drugdje |
| Pogodnost za e-trgovinu | Odlična — narudžbe, zalihe i plaćanja zagarantovano konzistentni | Dobra — istorijski standard (Magento, WooCommerce) | Za fleksibilne kataloge; konzistentnost narudžbi traži dodatni napor |
Česta pitanja
Utiče li PostgreSQL na brzinu mog sajta?
Ne negativno. Javne stranice servira Next.js uz keširanje, a indeksirani PostgreSQL upiti odgovaraju u milisekundama. Pri veličini tipičnog sajta ili prodavnice baza podataka rijetko je usko grlo — za doživljenu brzinu mnogo su važniji frontend i slike.
Zašto ne WordPress sa MySQL-om, kao svi ostali?
WordPress je PHP CMS sa temama i plaginima koji traže stalno održavanje i ažuriranja. 4buildsite generiše Next.js sajtove sa PostgreSQL-om u pozadini: bez plagina koje treba krpiti i sa manje sigurnosnih rupa. MySQL nije loš izbor — ali PostgreSQL dodaje indeksabilan JSONB, bolju full-text pretragu i stroži integritet, pod istom besplatnom licencom.
Šta se dešava sa mojim podacima ako server padne?
PostgreSQL svaku izmjenu prvo upisuje u WAL dnevnik, pa se pri ponovnom pokretanju baza sama rekonstruiše bez oštećenih podataka — nagli pad servera ne kvari vaše narudžbe. Pored toga, podaci žive na trajnim volumenima, odvojenim od aplikacije, pa restart ili ažuriranje platforme nikada ne dotiče podatke.
Mogu li da izvezem podatke ako napustim 4buildsite?
Da. Vaši podaci žive u PostgreSQL-u, formatu koji je industrijski standard — proizvodi, narudžbe i kupci mogu se izvesti u uobičajenim formatima (CSV, SQL). Ne postoji vlasnički format koji vas vezuje za platformu.
Može li PostgreSQL da isprati rast moje prodavnice?
Da, sa veoma velikom rezervom. Instagram i Reddit su skalirali na PostgreSQL-u do stotina miliona korisnika, koristeći indekse, particionisanje i read replike — iste tehnike dostupne su i na 4buildsite. Online prodavnica dostiže granice PostgreSQL-a mnogo kasnije nego granice sopstvene logistike.
Koliko košta licenca za PostgreSQL?
Ništa. PostgreSQL ima besplatnu licencu (PostgreSQL License, u BSD stilu), bez naknada po serveru ili po jezgru. Na 4buildsite baza podataka je uključena u vaš plan, zajedno sa hostingom i SSL-om — ne plaćate ništa posebno za nju.