PostgreSQL — baza podataka vaše web-stranice i web-trgovine
Svaki proizvod, narudžba, lead i stranica koje izradite na 4buildsiteu žive u PostgreSQL bazi podataka. Ne morate je administrirati sami — ali vrijedi znati zašto smo je odabrali: transakcijski integritet za plaćanja, pouzdanost dokazana gotovo 30 godina i nula troškova licence u vašoj cijeni.
Što je PostgreSQL i što on drži u vašoj web-stranici
PostgreSQL je relacijski sustav baza podataka otvorenog koda, kontinuirano razvijan od 1996. — s korijenima u projektu POSTGRES na Sveučilištu Berkeley (1986.). Na 4buildsiteu PostgreSQL je mjesto gdje žive podaci vaše web-stranice: proizvodi i zalihe, narudžbe i plaćanja, leadovi iz obrazaca i sadržaj stranica. Vi radite u vizualnom uredniku; PostgreSQL svaku promjenu čuva sigurnom.
Zašto je to važno vama, ako niste programer? Zato što se razlika između ozbiljne i krhke baze podataka vidi upravo u teškim trenucima: vrhunac prometa tijekom promocije, plaćanje ponovljeno dvaput, restart poslužitelja. PostgreSQL je projektiran da prođe kroz te trenutke bez gubitka ili oštećenja podataka — zato ga u velikom opsegu koriste tvrtke poput Instagrama i Reddita, a povijesno je bio u temeljima infrastrukture Skypea.
- Proizvodi, varijante i zalihe — cijeli katalog vaše web-trgovine
- Narudžbe, Stripe plaćanja i računi — povijest prodaje, bez rupa
- Leadovi iz obrazaca — svaki zahtjev za ponudu sprema se u bazu
- Sadržaj stranica i predložaka — sve što uređujete u vizualnom uredniku
- Domene, postavke i objavljene verzije vaše web-stranice
Narudžbe i plaćanja bez oštećenih podataka — ACID integritet
Kada kupac zadaje narudžbu, istodobno se događa više stvari: smanjuje se zaliha, stvara se narudžba, bilježi se Stripe plaćanje. PostgreSQL ih izvršava kao jednu transakciju: ili se dogode sve, ili nijedna. Ako plaćanje na pola puta ne uspije, zaliha se automatski vraća na početnu vrijednost. To se ponašanje zove ACID (Atomicity, Consistency, Isolation, Durability), a PostgreSQL ga jamči na svakoj tablici, bez posebnih konfiguracija.
Uz transakcije, PostgreSQL provodi pravila integriteta izravno u bazi podataka: stavka narudžbe ne može upućivati na nepostojeći proizvod, zaliha ne može postati negativna, e-adresa računa ne može se udvostručiti. Ta ograničenja (strani ključevi, check, unique) zaustavljaju pogrešne podatke prije nego uđu — a ne nakon što vam pokvare izvješće o prodaji.
Za marketplaceove integritet vrijedi dvostruko: provizije i podijeljena plaćanja putem Stripe Connecta izračunavaju se iz podataka narudžbe. Dupla narudžba ili nedosljedan iznos značili bi pogrešno podijeljen novac među prodavačima. PostgreSQL transakcije održavaju te izračune točnima, narudžbu po narudžbu.
Brza pretraga kataloga i fleksibilan sadržaj
PostgreSQL uključuje full-text tražilicu: kupci traže „tenisice za trčanje“ i pronalaze odgovarajuće proizvode, uz rječnike za stemming, uključujući rumunjski. Ekstenzija pg_trgm dodaje toleranciju na tipfelere. Za web-trgovinu te mogućnosti znače da se katalog može dobro pretraživati bez zasebnog servisa tipa Elasticsearch — dakle manje komponenata koje mogu pasti i niži troškovi infrastrukture.
Sadržaj stranica izgrađenih u vizualnom uredniku nema fiksnu strukturu — hero blok, obrazac i galerija imaju različita polja. PostgreSQL to rješava JSONB-om: pohranjuje izvorni JSON, indeksiran GIN indeksima, upitljiv kao bilo koji stupac. Dobivate fleksibilnost baze dokumenata, ali zadržavate relacijski integritet za narudžbe i plaćanja — u istom sustavu, a ne u dva.
- tsvector + rječnici za stemming (rumunjski uključen) — relevantna pretraga kataloga
- pg_trgm — kupci pronalaze proizvod čak i ako pogriješe jedno slovo
- JSONB s GIN indeksima — fleksibilni blokovi stranica ostaju brzo upitljivi
Pouzdanost: backup, oporavak i bez iznenađenja
PostgreSQL svaku promjenu prvo zapisuje u dnevnik (WAL — Write-Ahead Log), a tek zatim u same podatke. Ako se poslužitelj naglo zaustavi, pri ponovnom pokretanju baza podataka se rekonstruira iz dnevnika, bez oštećenih podataka. Na istom mehanizmu PostgreSQL gradi i oporavak na točku u vremenu (PITR) — standardnu mogućnost sustava za instalacije koje arhiviraju WAL dnevnik. Na 4buildsiteu podaci su na trajnim volumenima, odvojenima od aplikacije, pa ih restart ili ažuriranje platforme ne dira.
PostgreSQL podržava i streaming replikaciju — sinkroniziranu kopiju baze podataka, spremnu preuzeti promet po potrebi. Za vašu web-stranicu pouzdanost baze podataka izravno se prevodi u SEO: web-stranica koja dosljedno odgovara dosljedno se crawla i indeksira, a ponovljene 5xx pogreške snižavaju pozicije na Googleu.
Skaliranje i troškovi — rastite bez računa za licence
Kada web-trgovina raste, PostgreSQL raste s njom: indeksi održavaju upite brzima na katalozima sa stotinama tisuća proizvoda, particioniranje dijeli povijest narudžbi po razdobljima, a replike za čitanje preuzimaju promet izvješća. Instagram i Reddit skalirali su na PostgreSQL-u do stotina milijuna korisnika — web-trgovina dosegne granice ove tehnologije mnogo kasnije nego što misli.
PostgreSQL ima slobodnu licencu (PostgreSQL License, BSD tipa) — bez troškova licence i bez komercijalnog vlasnika koji preko noći može promijeniti pravila. Komercijalne baze podataka u pravilu se licenciraju po procesorskoj jezgri, a trošak neizbježno završi u cijeni koju plaća klijent. Na 4buildsiteu je baza podataka uključena u plan, uz hosting i SSL — bez ikakve zasebne naknade.
Prednosti i ograničenja
Prednosti
- Potpune ACID transakcije — narudžbe i plaćanja ostaju dosljedni čak i pri pogreškama ili padovima poslužitelja.
- Pouzdanost dokazana od 1996., u produkciji kod Instagrama, Reddita i, povijesno, Skypea.
- Izvorni JSONB — fleksibilan sadržaj stranica bez žrtvovanja relacijskog integriteta.
- Uključena full-text pretraga sa stemmingom — pretraga kataloga bez zasebnog servisa.
- Slobodna licenca — nula skrivenog troška licence u cijeni vašeg plana.
- WAL dnevnik — pri naglom zaustavljanju poslužitelja baza se pri ponovnom pokretanju rekonstruira bez oštećenih podataka.
Ograničenja
- Napredna administracija (tuning, replikacija, failover) traži iskustvo — na 4buildsiteu to radimo mi, ali self-hosted je zahtjevna.
- Pisanja idu na jedan primarni čvor — raspodjela na više čvorova (sharding) nije izvorna i traži dodatne alate.
- Svaka veza troši razmjerno mnogo memorije — pri mnogo veza potreban je pooling (PgBouncer).
- Full-text pretraga je dobra, ali ispod namjenskih tražilica u naprednoj relevantnosti i prijedlozima pretrage.
Kratak zaključak
PostgreSQL je standardan izbor za web-stranice, web-trgovine, marketplaceove i SaaS platforme u kojima se narudžbe, plaćanja i leadovi ne smiju izgubiti. Jednostavan blog snašao bi se i s manje — ali slobodna licenca znači da na 4buildsiteu ionako dobivate ovu razinu sigurnosti, bez dodatnog troška.
Tablica specifikacija
| Mogućnost | Granica / prag | Tipična uporaba | |
|---|---|---|---|
| Transakcijski integritet | Potpun ACID + MVCC, na svakoj tablici | Vrlo duge transakcije drže resurse zaključanima | Narudžbe, plaćanja, zalihe |
| JSONB | Izvorni JSON, indeksiran GIN-om | Vrlo složeni upiti nad JSON-om sporiji su nego nad klasičnim stupcima | Sadržaj stranica, postavke, atributi proizvoda |
| Full-text pretraga | tsvector + pg_trgm, višejezično (rumunjski uključen) | Relevantnost ispod namjenskih tražilica | Pretraga kataloga web-trgovine |
| Backup i replikacija | WAL, PITR, streaming replikacija | Automatski failover traži vanjske alate (npr. Patroni) | Oporavak nakon incidenata, visoka dostupnost |
| Skaliranje | Replike za čitanje, particioniranje tablica | Pisanja ostaju na primarnom čvoru | Veliki katalozi i povijesti narudžbi |
| Trošak | Otvoreni kod, slobodna licenca | Pravi trošak su infrastruktura i administracija | Uključeno u planove 4buildsitea |
PostgreSQL u odnosu na MySQL i MongoDB
| Kriterij | PostgreSQL | MySQL | MongoDB |
|---|---|---|---|
| ACID integritet | Potpun, na svakoj tablici, prema zadanim postavkama | Potpun samo s InnoDB motorom | Transakcije nad više dokumenata tek od v4.0, s ograničenjima |
| Tipovi podataka i JSON | Indeksirani JSONB + bogati tipovi (array, range) | Valjan JSON, neizravno indeksiranje (generirani stupci) | Izvorni BSON dokumenti, bez nametnute sheme |
| Full-text pretraga | Uključeno: tsvector, pg_trgm, višejezični stemming | Osnovna (InnoDB FTS) | Osnovna; napredna varijanta (Atlas Search) samo u komercijalnom oblaku |
| Licenca / trošak | PostgreSQL License — slobodna, bez komercijalnog vlasnika | GPL, u vlasništvu Oraclea (komercijalna izdanja) | SSPL — više nije klasična open-source licenca |
| Ekosustav | Snažne ekstenzije (PostGIS, pgvector), podrška u svim ORM-ovima | Sveprisutan u klasičnom PHP/WordPress hostingu | Snažan na Node.js-u, uži drugdje |
| Prikladnost za e-trgovinu | Izvrsna — narudžbe, zalihe i plaćanja dosljedni uz transakcije | Dobra — povijesni standard (Magento, WooCommerce) | Za fleksibilne kataloge; dosljednost narudžbi traži dodatan napor |
Često postavljana pitanja
Utječe li PostgreSQL na brzinu moje web-stranice?
Ne u negativnom smislu. Javne stranice poslužuju se iz Next.js-a s cacheom, a indeksirani PostgreSQL upiti odgovaraju u milisekundama. Na veličini tipične web-stranice ili web-trgovine baza podataka obično nije usko grlo — frontend i slike znatno više utječu na percipiranu brzinu.
Zašto ne WordPress s MySQL-om, kao svi?
WordPress je PHP CMS s temama i dodacima koje treba stalno održavati i ažurirati. 4buildsite generira Next.js web-stranice s PostgreSQL-om: bez dodataka koje treba krpati i s manje sigurnosnih propusta. MySQL nije loš izbor — ali PostgreSQL dodaje indeksirani JSONB, bolju full-text pretragu i stroži integritet, uz istu slobodnu licencu.
Što se događa s mojim podacima ako poslužitelj padne?
PostgreSQL svaku promjenu prvo upisuje u WAL dnevnik, pa se pri ponovnom pokretanju baza rekonstruira bez oštećenih podataka — nagli pad poslužitelja ne kvari vaše narudžbe. Uz to, podaci su na trajnim volumenima, odvojenima od aplikacije, pa ih restart ili ažuriranje platforme ne dira.
Mogu li izvesti svoje podatke ako odem s 4buildsitea?
Da. Vaši podaci su u PostgreSQL-u, industrijskom standardnom formatu — proizvodi, narudžbe i kupci mogu se izvesti u uobičajenim formatima (CSV, SQL). Ne postoji vlasnički format koji bi vas vezao uz platformu.
Može li PostgreSQL pratiti rast moje web-trgovine?
Da, s vrlo velikom marginom. Instagram i Reddit skalirali su na PostgreSQL-u do stotina milijuna korisnika, koristeći indekse, particioniranje i replike za čitanje — iste tehnike dostupne su i na 4buildsiteu. Web-trgovina dosegne granice PostgreSQL-a mnogo kasnije nego granice vlastite logistike.
Koliko me košta licenca za PostgreSQL?
Ništa. PostgreSQL ima slobodnu licencu (PostgreSQL License, BSD tipa), bez naknada po poslužitelju ili po jezgri. Na 4buildsiteu je baza podataka uključena u vaš plan, zajedno s hostingom i SSL-om — za nju ne plaćate ništa zasebno.