PostgreSQL — de database achter je website en webshop
Elk product, elke bestelling, elke lead en elke pagina die je op 4buildsite aanmaakt, leeft in een PostgreSQL-database. Je hoeft die niet zelf te beheren — maar het is de moeite waard om te weten waarom we ervoor gekozen hebben: transactionele integriteit voor betalingen, een betrouwbaarheid die zich al bijna 30 jaar bewijst en nul licentiekosten in je prijs.
Wat PostgreSQL is en wat het in je website opslaat
PostgreSQL is een relationeel opensource-databasesysteem dat sinds 1996 onafgebroken wordt doorontwikkeld — met wortels in het POSTGRES-project van de universiteit van Berkeley (1986). Op 4buildsite is PostgreSQL de plek waar de gegevens van je website leven: producten en voorraad, bestellingen en betalingen, leads uit formulieren en de inhoud van de pagina's. Jij werkt in de visuele editor; PostgreSQL bewaart elke wijziging veilig.
Waarom is dat belangrijk voor je als je geen ontwikkelaar bent? Omdat het verschil tussen een solide en een fragiele database zich juist op de moeilijke momenten laat zien: bij een verkeerspiek tijdens een actie, bij een dubbel uitgevoerde betaling, bij een herstart van de server. PostgreSQL is gebouwd om zulke momenten te doorstaan zonder gegevens te verliezen of te beschadigen — daarom zetten bedrijven als Instagram en Reddit het op grote schaal in, en historisch vormde het de basis van de infrastructuur van Skype.
- Producten, varianten en voorraad — de volledige catalogus van je webshop
- Bestellingen, Stripe-betalingen en facturen — de complete verkoophistorie
- Leads uit formulieren — elke offerteaanvraag, gegarandeerd opgeslagen
- De inhoud van de pagina's en sjablonen — alles wat je in de visuele editor bewerkt
- De domeinen, instellingen en gepubliceerde versies van je website
Bestellingen en betalingen zonder beschadigde gegevens — ACID-integriteit
Wanneer een klant een bestelling plaatst, gebeuren er meerdere dingen tegelijk: de voorraad daalt, de bestelling wordt aangemaakt, de Stripe-betaling wordt vastgelegd. PostgreSQL voert dat uit als één enkele transactie: alles of niets. Mislukt de betaling halverwege, dan keert de voorraad automatisch terug naar de oorspronkelijke waarde. Dit gedrag heet ACID (Atomicity, Consistency, Isolation, Durability) en wordt door PostgreSQL op elke tabel gegarandeerd, zonder bijzondere configuratie.
Naast transacties dwingt PostgreSQL integriteitsregels rechtstreeks in de database af: een bestelregel kan niet naar een niet-bestaand product verwijzen, een voorraad kan niet negatief worden, een e-mailadres van een account kan niet dubbel voorkomen. Deze constraints (foreign key, check, unique) houden foute gegevens tegen voordat ze binnenkomen — niet pas nadat ze je verkooprapport hebben verpest.
Voor marktplaatsen telt integriteit dubbel: commissies en gesplitste uitbetalingen via Stripe Connect worden uit de bestelgegevens berekend. Een dubbele bestelling of een inconsistent bedrag zou betekenen dat geld verkeerd over de verkopers wordt verdeeld. De transacties van PostgreSQL houden die berekeningen kloppend, bestelling voor bestelling.
Zoeken in de catalogus en flexibele content
PostgreSQL heeft een ingebouwde full-textzoekmachine: klanten zoeken op „hardloopschoenen” en vinden de passende producten, met stemming-woordenboeken voor onder meer het Nederlands. De extensie pg_trgm voegt tolerantie voor typefouten toe. Voor een webshop betekenen die mogelijkheden dat een catalogus goed doorzoekbaar is zonder een aparte dienst als Elasticsearch — dus minder onderdelen die kunnen uitvallen en lagere infrastructuurkosten.
De pagina-inhoud die je in de visuele editor bouwt, heeft geen vaste structuur — een heroblok, een formulier en een galerij hebben verschillende velden. PostgreSQL lost dat op met JSONB: het slaat JSON native op, doorzoekbaar met GIN-indexen en bevraagbaar als elke andere kolom. Je krijgt de flexibiliteit van een documentdatabase en behoudt tegelijk de relationele integriteit voor bestellingen en betalingen — in één systeem, niet in twee.
- tsvector en stemming-woordenboeken (Nederlands inbegrepen) — relevante zoekresultaten in de catalogus
- pg_trgm — klanten vinden het product ook met een typefout
- JSONB met GIN-indexen — flexibele paginablokken blijven snel bevraagbaar
Betrouwbaarheid: back-up, herstel en geen verrassingen
PostgreSQL schrijft elke wijziging eerst naar een journaal (WAL — Write-Ahead Log) en pas daarna naar de eigenlijke gegevens. Valt de server onverwacht uit, dan bouwt de database zich bij de herstart weer op uit het journaal, zonder beschadigde gegevens. Op datzelfde mechanisme berust ook het herstel naar een exact tijdstip (PITR) — een standaardmogelijkheid van de engine voor installaties die het WAL-journaal archiveren. Op 4buildsite staan de gegevens op persistente volumes, gescheiden van de applicatie, zodat een herstart of een platformupdate ze niet raakt.
PostgreSQL beheerst daarnaast streaming-replicatie — een gesynchroniseerde kopie van de database, klaar om het verkeer over te nemen wanneer dat nodig is. Voor je website vertaalt de betrouwbaarheid van de database zich rechtstreeks naar SEO en GEO: een website die consistent antwoordt, wordt consistent gecrawld en geïndexeerd, terwijl herhaalde 5xx-fouten je Google-posities omlaag halen en de crawlbaarheid van je pagina's verslechteren.
Schalen en kosten — groeien zonder licentiefacturen
Groeit de webshop, dan groeit PostgreSQL mee: indexen houden de query's ook snel bij catalogi met honderdduizenden producten, partitionering deelt de bestelhistorie op in periodes, en leesreplica's nemen het rapportageverkeer over. Instagram en Reddit hebben PostgreSQL geschaald naar honderden miljoenen gebruikers — een webshop bereikt de grenzen van deze technologie veel later dan je denkt.
PostgreSQL valt onder een vrije licentie (PostgreSQL License, BSD-achtig) — zonder licentiekosten en zonder commerciële eigenaar die de regels van de ene op de andere dag kan veranderen. Commerciële databases worden doorgaans per processorkern gelicentieerd, en die kosten belanden onvermijdelijk in de prijs voor de klant. Op 4buildsite zit de database in het abonnement, samen met hosting en SSL — zonder enige aparte kost.
Voordelen en beperkingen
Voordelen
- Volledige ACID-transacties — bestellingen en betalingen blijven consistent, zelfs bij fouten of serveruitval.
- Sinds 1996 bewezen betrouwbaarheid, in productie bij Instagram, Reddit en historisch bij Skype.
- Native JSONB — flexibele pagina-inhoud, zonder de relationele integriteit op te offeren.
- Full-textzoeken inbegrepen, met stemming voor het Nederlands — zoeken in de catalogus zonder aparte dienst.
- Vrije licentie — geen verborgen licentiekosten in de prijs van je abonnement.
- WAL-journaal — na een plotselinge serveruitval bouwt de database zich bij de herstart weer op zonder beschadigde gegevens.
Beperkingen
- Gevorderd beheer (tuning, replicatie, failover) vraagt ervaring — op 4buildsite nemen wij dat op ons, in eigen beheer is het veeleisend.
- Schrijfbewerkingen lopen via één enkele primaire node — de verdeling over meerdere nodes (sharding) is niet native en vraagt extra gereedschap.
- Elke verbinding verbruikt relatief veel werkgeheugen — bij veel verbindingen is pooling nodig (PgBouncer).
- Het full-textzoeken is goed, maar blijft bij veeleisende relevantie en zoeksuggesties achter bij gespecialiseerde engines.
Kort oordeel
PostgreSQL is de standaardkeuze voor websites, webshops en marktplaatsen waar bestellingen, betalingen en leads niet verloren mogen gaan. Een eenvoudige blog zou ook met minder toekomen — dankzij de vrije licentie krijg je dat veiligheidsniveau op 4buildsite sowieso zonder meerprijs.
Specificatietabel
| Mogelijkheid | Grens / drempel | Typisch gebruik | |
|---|---|---|---|
| Transactionele integriteit | Volledig ACID en MVCC, op elke tabel | Zeer lange transacties houden bronnen geblokkeerd | Bestellingen, betalingen, voorraad |
| JSONB | Native JSON, indexeerbaar met GIN | Zeer complexe query's op JSON zijn trager dan op klassieke kolommen | Pagina-inhoud, instellingen, productkenmerken |
| Full-textzoeken | tsvector en pg_trgm, meertalig (Nederlands inbegrepen) | Relevantie onder die van gespecialiseerde zoekmachines | Het zoeken in de catalogus van de webshop |
| Back-up & replicatie | WAL, PITR, streaming-replicatie | Automatische failover vraagt externe gereedschappen (bijv. Patroni) | Herstel na incidenten, hoge beschikbaarheid |
| Schalen | Leesreplica's, tabelpartitionering | Schrijfbewerkingen blijven op de primaire node | Grote catalogi en bestelhistories |
| Kosten | Open source, vrije licentie | De echte kosten zijn infrastructuur en beheer | Inbegrepen in de abonnementen van 4buildsite |
PostgreSQL, MySQL en MongoDB vergeleken
| Criterium | PostgreSQL | MySQL | MongoDB |
|---|---|---|---|
| ACID-integriteit | Volledig, op elke tabel, standaard | Volledig alleen met de InnoDB-engine | Transacties over meerdere documenten pas vanaf v4.0, met beperkingen |
| Datatypes & JSON | Indexeerbaar JSONB en rijke types (array, range) | Geldig JSON, indirecte indexering (gegenereerde kolommen) | Native BSON-documenten, zonder afgedwongen schema |
| Full-textzoeken | Inbegrepen: tsvector, pg_trgm, meertalige stemming | Basaal (InnoDB FTS) | Basaal; de gevorderde variant (Atlas Search) alleen in de commerciële cloud |
| Licentie / kosten | PostgreSQL License — vrij, zonder commerciële eigenaar | GPL, in handen van Oracle (commerciële edities) | SSPL — geen klassieke opensourcelicentie meer |
| Ecosysteem | Sterke extensies (PostGIS, pgvector), ondersteuning in alle ORM's | Alomtegenwoordig in klassieke PHP-/WordPress-hosting | Sterk bij Node.js, daarbuiten beperkter |
| Geschiktheid voor e-commerce | Uitstekend — bestellingen, voorraad en betalingen gegarandeerd consistent | Goed — de historische standaard (Magento, WooCommerce) | Voor flexibele catalogi; de consistentie van de bestellingen vraagt extra werk |
Veelgestelde vragen
Heeft PostgreSQL een negatief effect op de snelheid van mijn website?
Niet in negatieve zin. Publieke pagina's worden door Next.js met cache uitgeleverd, en geïndexeerde PostgreSQL-query's antwoorden in milliseconden. Voor de ervaren snelheid van een website tellen ook frontend en afbeeldingen mee.
Waarom niet WordPress met MySQL, zoals iedereen?
WordPress is een PHP-CMS met thema's en plug-ins die voortdurend onderhouden en bijgewerkt moeten worden. 4buildsite maakt Next.js-websites met PostgreSQL: zonder plug-ins om te patchen en met een statisch uitgeleverde website. MySQL is geen slechte keuze — maar PostgreSQL biedt daarbovenop indexeerbaar JSONB, beter full-textzoeken en strengere integriteit, bij dezelfde vrije licentie.
Wat gebeurt er met mijn gegevens als de server uitvalt?
PostgreSQL schrijft elke wijziging eerst naar het WAL-journaal, zodat de database zich bij de herstart weer opbouwt zonder beschadigde gegevens — een plotselinge serveruitval beschadigt je bestellingen niet. Bovendien staan de gegevens op persistente volumes, gescheiden van de applicatie, zodat een herstart of een platformupdate ze niet raakt.
Kan ik mijn gegevens exporteren als ik bij 4buildsite wegga?
Ja. Je gegevens staan in PostgreSQL, een industriestandaard — producten, bestellingen en klantgegevens laten zich exporteren naar gangbare formaten (CSV, SQL). Er is geen eigen formaat dat je aan het platform bindt.
Houdt PostgreSQL het bij als mijn webshop groeit?
Ja, met zeer veel ruimte over. Instagram en Reddit hebben PostgreSQL geschaald naar honderden miljoenen gebruikers, met behulp van indexen, partitionering en leesreplica's — dezelfde technieken die ook op 4buildsite beschikbaar zijn. Een webshop stuit veel eerder op de grenzen van de eigen logistiek dan op die van PostgreSQL.
Wat kost de PostgreSQL-licentie mij?
Niets. PostgreSQL valt onder een vrije licentie (PostgreSQL License, BSD-achtig), zonder kosten per server of per kern. Op 4buildsite zit de database in je abonnement, samen met hosting en SSL — je betaalt daar niets extra voor.