Veröffentlichung von PostgreSQL 17
(postgresql.org)- 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
- Höhere
- 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
ANALYZEAusfü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
- Die Performance von Abfragen mit
- Enthält mehrere Verbesserungen für die Abfrageplanung
- Optimierungen für
NOT NULL-Constraints - Verbesserte Verarbeitung von Common Table Expressions (
WITH-Abfragen)
- Optimierungen für
- 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_TABLElassen 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)
- Mit
- Dem Befehl
MERGEwurden eineRETURNING-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
COPYbis 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
- Beim Export großer Zeilen mit dem Befehl
- 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_fdwkönnenEXISTS- undIN-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
- Bietet Sortiersemantik ähnlich der C-Collation, verwendet aber UTF-8-Encoding anstelle von
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
sslnegotiationhinzugefü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 Utilitypg_combinebackuphinzugefügt, um vollständige Backups zu rekonstruierenpg_dumpenthä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
EXPLAINzeigt die Zeit an, die für das Lesen und Schreiben lokaler I/O-Blöcke benötigt wurde- Enthält zwei neue Optionen,
SERIALIZEundMEMORY: 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_eventswurde hinzugefügt und liefert in Kombination mitpg_stat_activityEinblicke 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