Stacks

Postgres als standaard database: wanneer wel en wanneer niet

Kies voor een nieuw product PostgreSQL. Met jsonb, full-text search en pgvector heb je in het begin zelden een tweede database nodig, en dat scheelt beheer en geld.

AleksaDoor AleksaTech lead, Belgrado · 4 min lezenRead in English
Een lange gang tussen serverkasten
Foto: Jinsoo Choi via Unsplash

Begin je een nieuw product en heb je geen sterke reden voor iets anders, kies dan PostgreSQL. Het is een relationele database met transacties en volwassen SQL, en het kan ook JSON-documenten, full-text search en, met de extensie pgvector, vectoren voor AI-zoekfuncties aan. Daardoor heb je in het begin zelden een tweede database nodig, en dat scheelt beheer en geld.

Waarom Postgres een goede standaard is

Postgres is open source en draait overal: op je laptop, in Docker, op je eigen servers en als beheerde dienst bij de grote cloudaanbieders, ook in hun Europese regio's. Je zit dus niet vast aan één leverancier.

Het is ook de database waar de meeste developers mee werken. In de Stack Overflow Developer Survey van 2025 was PostgreSQL de meest gebruikte database, met 55,6 procent van alle respondenten, tegen 40,5 procent voor MySQL. Voor werving en inwerken maakt dat verschil.

De releasecyclus is voorspelbaar. Er komt ongeveer één major versie per jaar uit, en elke versie wordt vijf jaar ondersteund. Je kunt upgrades dus ruim van tevoren plannen.

JSON zonder aparte documentdatabase

Postgres heeft twee JSON-types. json bewaart de tekst letterlijk, jsonb bewaart een binaire vorm die sneller te verwerken is en geïndexeerd kan worden. De documentatie raadt jsonb aan voor vrijwel alle toepassingen.

Met een GIN-index op een jsonb-kolom zoek je snel op sleutels en waarden. Mijn advies is om jsonb te gebruiken voor velden die per record verschillen, zoals productkenmerken of instellingen per klant. Velden waarop je vaak filtert of joint, maak je gewone kolommen. Dan blijven je queries leesbaar en je indexen klein.

Full-text search zit erin

Postgres heeft daarvoor de types tsvector en tsquery, met kant-en-klare configuraties voor veel talen. Met een index erbij is dat genoeg voor zoeken binnen een applicatie: klanten, orders, documenten of helpartikelen.

Heb je een grote productcatalogus met facetten, tolerantie voor typefouten en veel werk aan de ranking, dan is een aparte zoekmachine vaak beter. Bij ViaLuxury hebben we de beschikbaarheidsdatabase bijvoorbeeld op Elasticsearch opgezet.

Vectoren met pgvector

pgvector voegt vectortypes en zoeken op afstand toe aan Postgres. Je kiest uit twee indextypes. HNSW geeft een betere verhouding tussen snelheid en nauwkeurigheid, maar bouwt trager en gebruikt meer geheugen. IVFFlat bouwt sneller en gebruikt minder geheugen, maar zoekt minder goed, en die index maak je pas aan als er data in de tabel staat.

Vectoren in je hoofddatabase hebben als voordeel dat de embeddings naast de data staan die ze beschrijven. In één query filter je op klant, rechten en datum en zoek je op betekenis. Je hebt één backup en één plek waar je toegang regelt. Hoe je zulke functies opzet, lees je in AI-functies toevoegen aan bestaande software.

Wanneer Postgres niet de goede keuze is

SituatieBeter geschikt
Analyses over miljarden rijen, vooral lezen en optellenEen kolomgeoriënteerde database of een datawarehouse
Cache, sessies en rate limiting met heel veel lees- en schrijfactiesRedis of een vergelijkbare key-value store
Een organisatie die volledig op SQL Server draait, met DBA's en rapportagesSQL Server, tenzij er een reden is om te migreren
Een app die lokaal of op een toestel draait zonder serverSQLite
Zoeken met facetten en typefouttolerantie over een grote catalogusEen zoekmachine zoals Elasticsearch of OpenSearch

In de meeste van deze gevallen komt die tweede database naast Postgres, als aanvulling. Je hoofddata blijft waar ze was.

Wat je in beheer moet regelen

Een beheerde database kost per maand meer dan een eigen server, maar backups, failover en updates zijn dan geregeld. Voor een klein team is dat meestal goedkoper zodra je de uren meetelt.

Postgres start voor elke verbinding een apart serverproces. Heb je veel applicatie-instanties of serverless functies, zet er dan een connection pooler zoals PgBouncer tussen.

Zet pg_stat_statements aan, zodat je ziet welke queries de meeste tijd kosten. Kijk daar elke maand naar, samen met de groei van je grootste tabellen en indexen.

Leer iedereen in het team EXPLAIN ANALYZE lezen. Een trage pagina komt vaak door een ontbrekende index of een query die veel meer rijen ophaalt dan nodig. Dat zie je meteen in het queryplan, en een developer die dat kan lezen, lost het zelf op zonder op een DBA te wachten.

Plan je major upgrades. PostgreSQL 14 krijgt na 12 november 2026 geen updates meer. Draai je die versie nog, zet de upgrade dan nu op de planning. Test daarbij ook je backups door ze echt terug te zetten. Hoe je dat aanpakt, staat in backups en disaster recovery.

Bronnen

Veelgestelde vragen

Waarom kiezen zoveel teams voor PostgreSQL?

Postgres is open source, draait overal en kan naast relationele data ook JSON, full-text search en met pgvector vectoren aan. In de Stack Overflow Developer Survey van 2025 was het de meest gebruikte database.

Kun je met Postgres vector search doen voor AI-toepassingen?

Ja, met de extensie pgvector. Die ondersteunt HNSW- en IVFFlat-indexen. Zo staan embeddings in dezelfde database als de data die ze beschrijven, met dezelfde backups en rechten.

Wanneer heb je naast Postgres een andere database nodig?

Bij analyses over heel grote hoeveelheden data, bij een cache met heel veel lees- en schrijfacties en bij zoeken met facetten over een grote catalogus. Meestal komt die database naast Postgres en vervangt hij Postgres niet.

Over de auteur

Aleksa

Aleksa

Tech lead, Belgrado

Aleksa is tech lead in Belgrado. Hij stuurt het developmentteam aan, bewaakt de architectuur en rapporteert aan Erik.

Meer van Aleksa
Contact
Bas Leijder HavenstroomMaarten ter VeldeBarry Willems

Vertel ons wie je zoekt.

Een kennismaking duurt een half uur, online of op ons kantoor in Amsterdam. In de chat antwoorden we meestal binnen een paar minuten.

Of bel +31 20 210 1978hello@brainpowergroup.eu

Bas, Maarten en BarryNu live · antwoord binnen een paar minuten

Na het versturen gaat de chat open.