Objekt-relationale Open-Source-Datenbank mit JSONB, FTS und reicher Erweiterbarkeit.
PostgreSQL ist die fortgeschrittenste Open-Source-Relationale-DB — ACID, JSONB, Full-Text-Search, Window-Functions, CTEs, Extensions (PostGIS, pgvector, …). Default für seriöse Backend-Stacks.
# lokal via Docker
docker run -d -p 5432:5432 -e POSTGRES_PASSWORD=postgres postgres:16
psql postgres://postgres:postgres@localhost:5432
Oder als Teil von Supabase (supabase start).
CREATE TABLE events (id uuid PRIMARY KEY, type text, payload jsonb);
CREATE INDEX ON events USING gin (payload);
generated always as-Columns für berechnete Werte.SELECT *, row_number() OVER (PARTITION BY user_id ORDER BY created_at DESC) FROM ...
EXPLAIN ANALYZE für Query-Tuning — nicht raten, messen.NULL ist nicht gleich NULL (= NULL ist immer false) — IS NULL / IS DISTINCT FROM nutzen.timestamp vs timestamptz. Immer timestamptz und UTC speichern.SELECT * in Production: bricht bei Schema-Änderungen, zieht ungenutzte Spalten.Massive Time-Series-Workloads → TimescaleDB-Extension oder ClickHouse. Pure Key-Value bei extremer Latenz-Anforderung → Redis. Document-first-Modell mit Schemafreiheit → MongoDB.