PostgreSQL — databasen bak nettstedet og nettbutikken din
Hvert produkt, hver ordre, hver lead og hver side du oppretter på 4buildsite lever i en PostgreSQL-database. Du trenger ikke å administrere den selv — men det er verdt å vite hvorfor vi valgte den: transaksjonsintegritet for betalinger, pålitelighet bevist gjennom nesten 30 år og null lisenskostnader i prisen din.
Hva er PostgreSQL, og hva holder den i nettstedet ditt
PostgreSQL er et relasjonelt databasesystem med åpen kildekode, under kontinuerlig utvikling siden 1996 — med røtter i POSTGRES-prosjektet ved University of California, Berkeley (1986). På 4buildsite er PostgreSQL stedet der nettstedets data lever: produktene og lagerbeholdningen, ordrene og betalingene, leads fra skjemaer og innholdet på sidene. Du jobber i den visuelle editoren; PostgreSQL tar vare på hver endring.
Hvorfor spiller det en rolle for deg, hvis du ikke er programmerer? Fordi forskjellen mellom en seriøs og en skjør database viser seg nøyaktig i de vanskelige øyeblikkene: en trafikktopp under en kampanje, en betaling som gjentas to ganger, en omstart av serveren. PostgreSQL er laget for å komme gjennom slike øyeblikk uten å miste eller ødelegge data — derfor brukes den i stor skala av selskaper som Instagram og Reddit, og den lå historisk til grunn for Skypes infrastruktur.
- Produkter, varianter og lagerbeholdning — hele katalogen i nettbutikken din
- Ordrer, Stripe-betalinger og fakturaer — salgshistorikken, uten hull
- Leads fra skjemaer — hver tilbudsforespørsel er garantert lagret
- Innholdet på sider og maler — alt du redigerer i den visuelle editoren
- Domenene, innstillingene og de publiserte versjonene av nettstedet ditt
Ordrer og betalinger uten ødelagte data — ACID-integritet
Når en kunde legger inn en ordre, skjer flere ting samtidig: lagerbeholdningen går ned, ordren opprettes og Stripe-betalingen registreres. PostgreSQL utfører dem som én enkelt transaksjon: enten skjer alt, eller ingenting. Hvis betalingen feiler halvveis, går lagerbeholdningen automatisk tilbake til opprinnelig verdi. Denne oppførselen kalles ACID (Atomicity, Consistency, Isolation, Durability) og garanteres av PostgreSQL på alle tabeller, uten spesielle innstillinger.
I tillegg til transaksjoner håndhever PostgreSQL integritetsregler direkte i databasen: en ordrelinje kan ikke referere til et produkt som ikke finnes, en lagerbeholdning kan ikke bli negativ, og en konto-e-post kan ikke dupliseres. Disse begrensningene (fremmednøkler, check, unique) stopper feil data før de kommer inn — ikke etter at de har ødelagt salgsrapporten din.
For markedsplasser teller integritet dobbelt: provisjoner og delte betalinger via Stripe Connect beregnes ut fra ordredataene. En duplisert ordre eller et inkonsistent beløp ville bety penger som fordeles feil mellom selgerne. PostgreSQL-transaksjonene holder disse beregningene korrekte, ordre for ordre.
Raskt søk i katalogen og fleksibelt innhold
PostgreSQL inkluderer en fulltekstsøkemotor: kundene søker etter «joggesko» og finner de riktige produktene, med stemming-ordbøker, inkludert for rumensk. Utvidelsen pg_trgm gir toleranse for skrivefeil. For en nettbutikk betyr disse egenskapene at en katalog kan søkes godt uten en egen Elasticsearch-lignende tjeneste — altså færre komponenter som kan falle ut og lavere infrastrukturkostnader.
Innholdet på sidene som bygges i den visuelle editoren har ingen fast struktur — en hero-blokk, et skjema og et galleri har forskjellige felt. PostgreSQL løser dette med JSONB: lagrer innebygd JSON, kan indekseres med GIN-indekser og kan spørres som en hvilken som helst kolonne. Du får fleksibiliteten til en dokumentdatabase, men beholder den relasjonelle integriteten for ordrer og betalinger — i samme system, ikke i to.
- tsvector + stemming-ordbøker (rumensk inkludert) — relevant søk i katalogen
- pg_trgm — kundene finner produktet selv om de skriver én bokstav feil
- JSONB med GIN-indekser — fleksible sideblokker kan fortsatt spørres raskt
Pålitelighet: backup, gjenoppretting og null overraskelser
PostgreSQL skriver hver endring først i en logg (WAL — Write-Ahead Log) og først deretter i selve dataene. Hvis serveren stopper brått, bygges databasen opp igjen fra loggen ved omstart, uten ødelagte data. På samme mekanisme bygger PostgreSQL også gjenoppretting til et bestemt tidspunkt (PITR) — en standardfunksjon i motoren for installasjoner som arkiverer WAL-loggen. På 4buildsite ligger dataene på persistente volumer, adskilt fra applikasjonen, så en omstart eller en oppdatering av plattformen berører dem ikke.
PostgreSQL støtter også streaming-replikering — en synkronisert kopi av databasen, klar til å ta over trafikken ved behov. Gjentatte 5xx-feil er et kjent problem for crawling og indeksering, og en pålitelig database fjerner én kilde til slike feil.
Skalering og kostnader — vokser uten lisensregninger
Når nettbutikken vokser, vokser PostgreSQL med den: indekser holder spørringene raske på kataloger med hundretusenvis av produkter, partisjonering deler ordrehistorikken opp i perioder, og lesereplikaer tar unna rapporttrafikken. Instagram og Reddit har skalert på PostgreSQL til hundrevis av millioner brukere — en nettbutikk når grensene for denne teknologien mye senere enn man tror.
PostgreSQL har en fri lisens (PostgreSQL License, av BSD-typen) — ingen lisenskostnader og ingen kommersiell eier som kan endre reglene over natten. Kommersielle databaser lisensieres vanligvis per prosessorkjerne, og kostnaden havner uunngåelig i prisen kunden betaler. På 4buildsite er databasen inkludert i planen, sammen med hosting og SSL — uten noen egen avgift.
Fordeler og begrensninger
Fordeler
- Fullstendige ACID-transaksjoner — ordrer og betalinger forblir konsistente selv ved feil eller serverkrasj.
- Bevist pålitelighet siden 1996, i produksjon hos Instagram, Reddit og historisk Skype.
- Innebygd JSONB — fleksibelt sideinnhold uten å ofre relasjonell integritet.
- Fulltekstsøk inkludert, med stemming for rumensk — katalogsøk uten egen tjeneste.
- Fri lisens — null lisenskostnad skjult i prisen på planen din.
- WAL-logg — ved et brått serverstopp bygges databasen opp igjen ved omstart uten ødelagte data.
Begrensninger
- Avansert administrasjon (tuning, replikering, failover) krever erfaring — på 4buildsite gjør vi det for deg, men selvhostet er det krevende.
- Skriving skjer på én enkelt primærnode — distribusjon over flere noder (sharding) er ikke innebygd og krever tilleggsverktøy.
- Hver tilkobling bruker relativt mye minne — ved mange tilkoblinger trengs pooling (PgBouncer).
- Fulltekstsøket er bra, men står tilbake for dedikerte motorer når det gjelder avansert relevans og søkeforslag.
Kort vurdering
PostgreSQL er standardvalget for nettsteder, nettbutikker, markedsplasser og SaaS-plattformer der ordrer, betalinger og leads ikke får gå tapt. En enkel blogg klarer seg også med mindre — men den frie lisensen betyr at du uansett får dette sikkerhetsnivået på 4buildsite, uten ekstra kostnad.
Spesifikasjonstabell
| Egenskap | Grense / terskel | Typisk bruk | |
|---|---|---|---|
| Transaksjonsintegritet | Full ACID + MVCC, på alle tabeller | Svært lange transaksjoner holder ressurser låst | Ordrer, betalinger, lagerbeholdning |
| JSONB | Innebygd JSON, kan indekseres med GIN | Svært komplekse spørringer på JSON er tregere enn på vanlige kolonner | Sideinnhold, innstillinger, produktattributter |
| Fulltekstsøk | tsvector + pg_trgm, flerspråklig (rumensk inkludert) | Relevans under dedikerte søkemotorer | Søk i nettbutikkens katalog |
| Backup og replikering | WAL, PITR, streaming-replikering | Automatisk failover krever eksterne verktøy (f.eks. Patroni) | Gjenoppretting etter hendelser, høy tilgjengelighet |
| Skalering | Lesereplikaer, tabellpartisjonering | Skriving forblir på primærnoden | Store kataloger og ordrehistorikker |
| Kostnad | Åpen kildekode, fri lisens | Den reelle kostnaden er infrastruktur og administrasjon | Inkludert i 4buildsite-planene |
PostgreSQL mot MySQL mot MongoDB
| Kriterium | PostgreSQL | MySQL | MongoDB |
|---|---|---|---|
| ACID-integritet | Fullstendig, på alle tabeller, som standard | Fullstendig bare med InnoDB-motoren | Transaksjoner på tvers av dokumenter først fra v4.0, med begrensninger |
| Datatyper og JSON | JSONB som kan indekseres + rike typer (array, range) | Gyldig JSON, indirekte indeksering (genererte kolonner) | Innebygde BSON-dokumenter, uten påtvunget skjema |
| Fulltekstsøk | Inkludert: tsvector, pg_trgm, flerspråklig stemming | Grunnleggende (InnoDB FTS) | Grunnleggende; den avanserte varianten (Atlas Search) bare i den kommersielle skyen |
| Lisens / kostnad | PostgreSQL License — fri, uten kommersiell eier | GPL, eid av Oracle (kommersielle utgaver) | SSPL — ikke lenger en klassisk åpen kildekode-lisens |
| Økosystem | Kraftige utvidelser (PostGIS, pgvector), støtte i alle ORM-er | Allestedsnærværende i klassisk PHP-/WordPress-hosting | Sterk på Node.js, mer begrenset ellers |
| Egnethet for e-handel | Utmerket — ordrer, lagerbeholdning og betalinger garantert konsistente | God — den historiske standarden (Magento, WooCommerce) | For fleksible kataloger; konsistens i ordrer krever ekstra innsats |
Ofte stilte spørsmål
Påvirker PostgreSQL hastigheten på nettstedet mitt?
De offentlige sidene serveres fra Next.js med cache, så de fleste besøk går ikke direkte til databasen, og spørringene mot PostgreSQL bruker indekser. For opplevd hastighet er det vanligvis frontend, bilder og cache som avgjør.
Hvorfor ikke WordPress med MySQL, som alle andre?
WordPress er et PHP-CMS med temaer og plugins som må vedlikeholdes og oppdateres hele tiden. 4buildsite genererer Next.js-nettsteder med PostgreSQL: uten plugins som må patches og med færre sikkerhetshull. MySQL er ikke noe dårlig valg — men PostgreSQL gir JSONB som kan indekseres, bedre fulltekstsøk og strengere integritet, under den samme frie lisensen.
Hva skjer med dataene mine hvis serveren går ned?
PostgreSQL skriver hver endring først i WAL-loggen, så databasen bygges opp igjen ved omstart uten ødelagte data — et brått serverkrasj ødelegger ikke ordrene dine. I tillegg ligger dataene på persistente volumer, adskilt fra applikasjonen, så en omstart eller en oppdatering av plattformen berører dem ikke.
Kan jeg eksportere dataene mine hvis jeg forlater 4buildsite?
Ja. Dataene dine ligger i PostgreSQL, et standardformat i bransjen — produkter, ordrer og kunder kan eksporteres i vanlige formater (CSV, SQL). Det finnes ikke noe proprietært format som låser deg til plattformen.
Klarer PostgreSQL seg hvis nettbutikken min vokser?
Ja, med svært god margin. Instagram og Reddit har skalert på PostgreSQL til hundrevis av millioner brukere, ved hjelp av indekser, partisjonering og lesereplikaer — de samme teknikkene er tilgjengelige på 4buildsite. En nettbutikk når grensene for PostgreSQL mye senere enn grensene for sin egen logistikk.
Hva koster PostgreSQL-lisensen meg?
Ingenting. PostgreSQL har en fri lisens (PostgreSQL License, av BSD-typen), uten avgifter per server eller per kjerne. På 4buildsite er databasen inkludert i planen din, sammen med hosting og SSL — du betaler ingenting separat for den.