Die PostgreSQL Global Development Group hat die erste Beta-Version von PostgreSQL 18 offiziell veröffentlicht. Diese Version ist ein wichtiger Schritt auf dem Weg zur finalen Veröffentlichung von PostgreSQL 18, die voraussichtlich im Herbst 2025 erfolgen wird. Die Beta-Version ermöglicht es Anwendern, die neuen Features und Optimierungen ausgiebig zu testen und Feedback zu geben, um die Stabilität und Qualität des Systems zu gewährleisten. Obwohl es sich noch um eine Vorabversion handelt und der Einsatz in Produktionsumgebungen nicht empfohlen wird, eröffnen die Neuerungen bereits jetzt spannende Perspektiven für professionelle Anwender und Entwickler. Ein zentraler Fokus von PostgreSQL 18 liegt auf der deutlichen Verbesserung der Performance.
Die Einführung eines asynchronen Ein-/Ausgabe-Subsystems (AIO) stellt einen bedeutenden Fortschritt dar. Dieses neue Subsystem steigert die Ein- und Ausgabe-Performance, indem es Latenzen reduziert und die Durchsatzrate erhöht. Besonders auf Linux-Systemen kann dank io_uring eine besonders effiziente Verarbeitung realisiert werden, während auf anderen Plattformen ein arbeiterbasierter Ansatz zum Einsatz kommt. Aktuelle Tests zeigen bei Dateioperationen wie sequentiellen Scans, Bitmap-Heap-Scans und Vacuuming eine zwei- bis dreifache Steigerung der Performance, was die Bedeutung dieses Upgrades unterstreicht. Darüber hinaus bringt PostgreSQL 18 neue Optimierungen bei der Abfrageausführung mit.
Die Unterstützung von "skip scan"-Lookups auf mehrspaltigen B-Baum-Indizes ermöglicht schnellere Suchvorgänge bei Abfragen, die nicht für alle Spalten bedingte Gleichheitsvergleiche enthalten. Auch die Verarbeitung von WHERE-Klauseln mit OR- und IN-Bedingungen wurde verbessert, um die Indexnutzung zu optimieren und somit die Gesamtleistung zu erhöhen. Verbesserte Join-Strategien, darunter schnellere Hash-Joins und inkrementelle Sortierung bei Merge-Joins, tragen ebenfalls zur besseren Performance bei komplexen Abfragen bei. Parallelisierung erlebt ebenfalls einen Schub: GIN-Indizes, die häufig bei Volltextsuche und JSON-Daten verwendet werden, können nun parallel aufgebaut werden. Diese Neuerung beschleunigt Indexerstellungen erheblich und ist besonders für große Datenbanken von Vorteil.
Zusätzlich erweitert PostgreSQL 18 die Möglichkeiten bei Partitionierung und Materialized Views, da nun einzigartige Indizes definiert werden können, die nicht ausschließlich auf B-Bäumen basieren. Das Upgrade-Verfahren auf eine neue Major-Version wurde in PostgreSQL 18 deutlich verbessert. Bisher mussten Administratoren oft einen ANALYZE-Befehl nach dem Versionswechsel manuell ausführen, um Statistiken neu zu generieren und die optimale Abfrageplanung zu fördern. Mit der neuen Version können Statistiken über das Upgrade hinweg beibehalten werden, was die Transition vereinfacht und die Datenbank schneller auf optimale Leistung bringt. Auch das Upgrade-Werkzeug pg_upgrade wurde erweitert: Durch die Nutzung paralleler Prüfprozesse und der neuen --swap Option können Upgrades schneller und ressourcenschonender durchgeführt werden.
Für Entwickler bietet PostgreSQL 18 ebenfalls zahlreiche neue Funktionen und Komforterweiterungen. So stellt die Einführung von virtuellen generierten Spalten, die Werte nur bei der Abfrage berechnen, eine effiziente Alternative zu gespeicherten generierten Spalten dar. Auch die Unterstützung von logischer Replikation für gespeicherte generierte Spalten wurde eingebaut. Die Erweiterung des RETURNING-Blocks, der jetzt alte und neue Werte gleichzeitig zurückgeben kann, erleichtert die Entwicklung komplexer Datenmanipulationen erheblich. Zudem wurde mit der Funktion uuidv7() eine neue Möglichkeit eingeführt, zeitlich geordnete UUIDs zu erzeugen, die bei bestimmten Anwendungen wie Caching oder Indexierung Vorteile bieten.
Traditionelle UUIDv4 wird parallel weiterhin über ein Alias unterstützt. Die neuen Features im Bereich Zeichensatzpflege und Kollationen ermöglichen nun etwa LIKE-Vergleiche über nichtdeterministische Kollationen hinweg und führen eine CASEFOLD-Funktion für case-insensitive Vergleiche ein. Im Sicherheitsbereich hat PostgreSQL 18 ebenfalls wichtige Neuerungen parat. Die Unterstützung für OAuth 2.0-basierte Authentifizierung wird durch entsprechende Erweiterungen bereitgestellt, was moderne Anwendungsfälle mit externem Identitätsmanagement besser unterstützt.
Die Umstellung von der veralteten MD5-Passwort-Authentifizierung hin zur sicheren SCRAM-Methode wird konsequent fortgesetzt, wobei MD5 in Zukunft entfernt wird. Erweiterte FIPS-Validierungen für den Serverbetrieb sowie neue Konfigurationsmöglichkeiten der TLS 1.3 Verschlüsselung verbessern die Compliance und Sicherheit weiter. Monitoring und Beobachtbarkeit sind in der neuen Version deutlich erweitert worden. Das EXPLAIN-Tool zeigt nun ausführlichere Informationen, darunter die Anzahl der genutzten Speicherpuffer und Indexzugriffe.
Auch CPU-Auslastung, WAL-Statistiken und durchschnittliche Lesezeiten werden detailliert dargestellt, was die Diagnose und Optimierung von Abfragen erleichtert. Zusätzlich wurden neue Metriken zur Analyse von Vacuum- und Analysezeiten sowie pro-Connection I/O- und WAL-Nutzung eingeführt. Selbst bei logischen Replikationen helfen verbesserte Einblicke in Konfliktsituationen, potenzielle Probleme frühzeitig zu erkennen und zu beheben. Ein weiterer bemerkenswerter Fortschritt ist die standardmäßige Aktivierung von Datenprüfsummen bei neuen Datenbankclustern. Diese Schutzmaßnahme erhöht die Datenintegrität und kann manuell deaktiviert werden.
Im Bereich der Constraints bietet PostgreSQL 18 neue Optionen, die beispielsweise das Setzen von FOREIGN KEY und CHECK Constraints als nicht durchgesetzt („NOT ENFORCED“) ermöglichen, was bisher eher unüblich war. Die Behandlung von NOT NULL-Constraints wurde näher an den SQL-Standard gebracht und unterstützt nun Features wie NOT VALID und NO INHERIT. Ein Highlight für die Verwaltung und Replikation ist die Erweiterung von pg_createsubscriber, mit dem sich nun logische Repliken aller Datenbanken eines Clusters mit einem einzigen Befehl erzeugen lassen. Die neue CREATE FOREIGN TABLE ..
. LIKE Funktion erlaubt außerdem, aus lokalen Tabellen einfach ausländische Tabellen mit identischer Struktur zu erzeugen. Technisch innovativ ist auch die Einführung einer neuen PostgreSQL Wire-Protokoll-Version 3.2, welche seit dem Jahr 2003 die erste größere Protokolländerung darstellt. Während libpq weiterhin standardmäßig die Version 3.
0 nutzt, können Clients und andere Komponenten künftig von den Verbesserungen des neuen Protokolls profitieren. Zahlreiche weitere Features und Verbesserungen sind in PostgreSQL 18 enthalten, die eine umfassende Weiterentwicklung der etablierten Datenbanklösung versprechen. Die Beta-Version bietet allen Interessierten die Möglichkeit, frühzeitig Stabilität und Kompatibilität zu testen und eigene Anwendungen für die neuen Funktionsumfänge zu optimieren. Die PostgreSQL Community legt großen Wert auf diese Rückmeldungen, um die finale Version bestmöglich vorzubereiten. Die offizielle Dokumentation und detaillierte Release Notes machen es Entwicklern und Administratoren einfach, sich tiefgehend über alle neuen Funktionen und Änderungen zu informieren.