- PostgreSQL 17 umfasst wichtige Leistungsverbesserungen, ein verbessertes Speichermanagement, optimierten Speicherzugriff, Verbesserungen bei Workloads mit hoher Parallelität, höhere Geschwindigkeiten beim Massenladen und Exportieren sowie eine verbesserte Ausführung von Indexabfragen
Leistungsverbesserungen im gesamten System
- Die internen Speicherstrukturen des PostgreSQL-
vacuum-Prozesses, der für den normalen Betrieb essenziell ist, wurden verbessert, wodurch der Speicherverbrauch um bis zu das 20-Fache gesenkt wird
- Höhere
vacuum-Geschwindigkeit und geringere Nutzung gemeinsam genutzter Ressourcen machen mehr Ressourcen für Workloads verfügbar
- Die Performance der I/O-Schicht wurde kontinuierlich verbessert
- Verbesserungen bei der Verarbeitung des Write-Ahead Log (WAL) liefern bei Workloads mit hoher Parallelität eine bis zu doppelt so hohe Schreibdurchsatzleistung
- Eine neue Streaming-I/O-Schnittstelle erhöht die Geschwindigkeit von Sequential Scans (Lesen aller Daten aus einer Tabelle) und die Geschwindigkeit, mit der der Befehl
ANALYZE Ausführungsplanstatistiken aktualisiert
- Leistungsverbesserungen wurden auch auf die Abfrageausführung ausgeweitet
- Die Performance von Abfragen mit
IN-Klauseln, die B-Tree-Indizes (die Standard-Indexmethode von PostgreSQL) verwenden, wurde verbessert
- Paralleles Erstellen von BRIN-Indizes wird unterstützt
- Enthält mehrere Verbesserungen für die Abfrageplanung
- Optimierungen für
NOT NULL-Constraints
- Verbesserte Verarbeitung von Common Table Expressions (
WITH-Abfragen)
- Erweiterte SIMD-Unterstützung (Single Instruction/Multiple Data) zur Beschleunigung von Berechnungen, darunter die Nutzung von AVX-512 in der Funktion
bit_count
Die starke Developer Experience weiter ausgebaut
- PostgreSQL war die erste relationale Datenbank mit JSON-Unterstützung (2012)
- In PostgreSQL 17 wurde die Implementierung des SQL/JSON-Standards weiter ausgebaut
- Mit
JSON_TABLE lassen sich JSON-Daten in Standard-PostgreSQL-Tabellen umwandeln
- Unterstützung für SQL/JSON-Konstruktoren (
JSON, JSON_SCALAR, JSON_SERIALIZE) und Abfragefunktionen (JSON_EXISTS, JSON_QUERY, JSON_VALUE)
- Hinzugefügte
jsonpath-Ausdrücke mit Fokus auf die Umwandlung von JSON-Daten in native PostgreSQL-Datentypen (Zahlen, Boolean, Strings, Datum/Uhrzeit)
- Dem Befehl
MERGE wurden eine RETURNING-Klausel und die Möglichkeit zur Aktualisierung von Views hinzugefügt
- Verbesserungen beim Massenladen und beim Datenexport
- Beim Export großer Zeilen mit dem Befehl
COPY bis zu doppelte Leistungssteigerung
- Verbesserte
COPY-Performance, wenn Quell- und Ziel-Encoding übereinstimmen
- Neue Option
ON_ERROR, mit der der Import auch bei Einfügefehlern fortgesetzt werden kann
- Die Funktionen zur Verwaltung von Daten, die über Partitionen und entfernte PostgreSQL-Instanzen verteilt sind, wurden erweitert
- Unterstützung für ID-Spalten und Exclusion Constraints in partitionierten Tabellen
- Mit
postgres_fdw können EXISTS- und IN-Subqueries auf Remote-Server gepusht werden
- Enthält einen eingebauten plattformunabhängigen und unveränderlichen Collation-Provider
- Bietet Sortiersemantik ähnlich der C-Collation, verwendet aber UTF-8-Encoding anstelle von
SQL_ASCII
- Mit diesem neuen Collation-Provider liefern textbasierte Abfragen unabhängig vom Ausführungsort von PostgreSQL dieselben Sortierergebnisse
Verbesserte logische Replikation für Hochverfügbarkeit und Upgrades auf neue Hauptversionen
- Logische Replikation wird zum Streamen von Daten in Echtzeit verwendet
- In früheren Versionen mussten bei Upgrades auf neue Hauptversionen logische Replikations-Slots gelöscht werden, wodurch nach dem Upgrade eine erneute Synchronisierung der Daten mit den Subscriber-Systemen nötig war
- Ab PostgreSQL 17 müssen logische Replikations-Slots nicht mehr gelöscht werden, was den Upgrade-Prozess vereinfacht
- Enthält Failover-Steuerung für die logische Replikation und ermöglicht dadurch resilientere Deployments in Hochverfügbarkeitsumgebungen
- Einführung des Kommandozeilenwerkzeugs
pg_createsubscriber, mit dem sich physische Replikate in neue logische Replikate umwandeln lassen
Mehr Optionen für Sicherheit und Betriebsmanagement
- PostgreSQL 17 erweitert weiter, wie Nutzer den gesamten Lebenszyklus des Datenbanksystems verwalten können
- Neue TLS-Option
sslnegotiation hinzugefügt, mit der bei Verwendung von ALPN direkt ein TLS-Handshake ausgeführt werden kann
- Hinzugefügt wurde die vordefinierte Rolle
pg_maintain, die Berechtigungen zum Ausführen von Wartungsaufgaben vergibt
pg_basebackup, das in PostgreSQL enthaltene Backup-Utility, unterstützt jetzt inkrementelle Backups; außerdem wurde das Utility pg_combinebackup hinzugefügt, um vollständige Backups zu rekonstruieren
pg_dump enthält eine neue Option --filter, mit der sich auswählen lässt, welche Objekte beim Erstellen einer Dump-Datei einbezogen werden
- Verbesserte Monitoring- und Analysefunktionen
EXPLAIN zeigt die Zeit an, die für das Lesen und Schreiben lokaler I/O-Blöcke benötigt wurde
- Enthält zwei neue Optionen,
SERIALIZE und MEMORY: nützlich, um die für die Datenumwandlung zur Netzwerkübertragung benötigte Zeit und die verwendete Speichermenge zu prüfen
- Meldet den Fortschritt der Indexbereinigung
- Die System-View
pg_wait_events wurde hinzugefügt und liefert in Kombination mit pg_stat_activity Einblicke in die Gründe, warum aktive Sessions warten
1 Kommentare
Hacker-News-Kommentare
Glückwünsche zur neuen Veröffentlichung von PostgreSQL 17 sowie Hinweise auf mehrere Verbesserungen
pg_basebackupsowie das neue Utilitypg_combinebackupEXISTS- undIN-Subqueries auf Remote-Servern verarbeitet werden könnenMeinungen zur Nützlichkeit der JSON-Funktionen
JSON_TABLE-Funktion kennenzulernenGeteilte Erfahrungen mit der Nutzung der JSON_TABLE-Funktion
jsonb-Spalte zu speichern und sie über Views zu parsenHinweis auf Leistungssteigerungen und UX-Verbesserungen in PostgreSQL 17
Eindruck vom Changelog
Geteilte Erfahrung eines Wechsels von Oracle zu MSSQL aufgrund mangelnden Vertrauens in Open-Source-Software
Dank für die kontinuierlichen Verbesserungen an Postgres sowie die Hoffnung auf offizielle Unterstützung für die Erweiterung Incremental View Maintenance (IVM)
Erwartungen an die Unterstützung für Upgrades auf neue Hauptversionen von PostgreSQL
Hoffnung auf die Einführung systemversionierter Tabellen in Postgres
Erwartung, dass die verbesserte JSON-Integration in Postgres ein neues Paradigma für Web-Frameworks ermöglichen wird