PostgreSQL
Kurz: Ein besonders funktionsreiches, quelloffenes relationales Datenbanksystem — bekannt für strikte Standardkonformität, erweiterte Datentypen (JSON, Arrays, Geodaten) und hohe Zuverlässigkeit.
Genauer: PostgreSQL gilt gegenüber MySQL/MariaDB oft als die “technisch mächtigere” Wahl (z. B. bei komplexen Abfragen, Transaktionsverhalten, benutzerdefinierten Datentypen), bei ähnlich einfacher Einrichtung. Dienste wie Neon oder Supabase bieten PostgreSQL als verwaltete “Serverless”-Variante an.
Im Detail
PostgreSQL (oft kurz “Postgres” genannt) wird seit den 1980er-Jahren kontinuierlich weiterentwickelt und gilt als besonders standardkonform — es setzt SQL-Standards oft vollständiger um als konkurrierende Systeme. Zu den Features, die es von MySQL abheben, gehören natives JSON-mit-Indizierung (JSONB, effizient durchsuchbar statt nur als Text gespeichert), Array-Spalten, benutzerdefinierte Datentypen und Funktionen, sowie eine sehr strikte Einhaltung der ACID-Eigenschaften (Atomicity, Consistency, Isolation, Durability) bei Transaktionen.
CREATE TABLE bestellungen (
id SERIAL PRIMARY KEY,
kunde_id INTEGER REFERENCES kunden(id),
positionen JSONB
);Die Erweiterbarkeit ist ein weiteres Alleinstellungsmerkmal: Erweiterungen wie PostGIS (Geodaten/Kartenfunktionen) oder pgvector (Vektorsuche für KI-Embeddings) machen PostgreSQL zu einer vielseitigen Basis auch für Anwendungsfälle, für die man früher eine separate Spezialdatenbank gebraucht hätte. Anbieter wie Neon oder Supabase bauen “Serverless”-Varianten direkt auf echtem PostgreSQL auf, statt eine eigene, inkompatible Datenbank-Engine zu entwickeln.
MVCC statt Sperren
PostgreSQL nutzt für Nebenläufigkeit ein Verfahren namens MVCC (Multi-Version Concurrency Control): Statt bei einer laufenden Transaktion andere Lesezugriffe zu blockieren, behält die Datenbank mehrere Versionen einer Zeile gleichzeitig vor — ein lesender Zugriff sieht immer einen konsistenten Datenstand, wie er zum Start der eigenen Transaktion existierte, auch wenn parallel eine andere Transaktion dieselbe Zeile ändert. Das ermöglicht hohe Nebenläufigkeit (viele gleichzeitige Lese- und Schreibzugriffe) ohne die Performance-Einbußen klassischer, sperrbasierter Systeme, erfordert aber im Hintergrund einen regelmäßigen Aufräumprozess (“Vacuum”), der veraltete Zeilenversionen entfernt.
Indizes und Abfrageoptimierung
Neben dem Standard-B-Tree-Index unterstützt PostgreSQL spezialisierte Indextypen für unterschiedliche Anwendungsfälle: GIN-Indizes eignen sich für Volltextsuche und JSONB-Spalten, GiST-Indizes für Geodaten (in Kombination mit PostGIS), und BRIN-Indizes für sehr große, natürlich sortierte Tabellen (z. B. Zeitreihendaten), wo sie deutlich weniger Speicherplatz benötigen als ein vollständiger B-Tree-Index. Der integrierte EXPLAIN ANALYZE-Befehl zeigt den tatsächlichen Ausführungsplan einer Abfrage inklusive genutzter Indizes — ein zentrales Werkzeug, um langsame Abfragen in der Praxis zu diagnostizieren.
EXPLAIN ANALYZE
SELECT * FROM bestellungen WHERE kunde_id = 42;Ökosystem und Tooling
PostgreSQLs Popularität hat ein reichhaltiges Ökosystem an Tools hervorgebracht: pg_dump/pg_restore für Backups, pgAdmin als grafische Verwaltungsoberfläche, und moderne TypeScript-ORMs wie Drizzle ORM oder Prisma, die typsicheren Datenbankzugriff direkt aus dem Anwendungscode ermöglichen. Die breite Unterstützung durch praktisch jeden Cloud-Anbieter (AWS RDS, Google Cloud SQL, Azure Database, sowie spezialisierte Serverless-Anbieter wie Neon) macht PostgreSQL zu einer risikoarmen langfristigen Wahl, da ein Anbieterwechsel dank SQL-Standardkonformität selten grundlegende Anwendungsänderungen erfordert.