- PostgreSQL 16 verbessert die Performance deutlich durch spürbare Fortschritte bei Query-Parallelität, dem Laden großer Datenmengen und der logischen Replikation
- Führt mehr SQL/JSON-Syntax, neue Monitoring-Statistiken für Workloads und mehr Flexibilität bei der Definition von Zugriffskontrollregeln ein
Performance-Verbesserungen
- Der Query-Planer kann jetzt FULL- und RIGHT-Joins parallelisieren, erzeugt stärker optimierte Pläne für Abfragen mit DISTINCT- oder ORDER BY-Klauseln, nutzt inkrementelles Sortieren für
SELECT DISTINCT-Abfragen und optimiert Window-Funktionen
- Bulk-Loading mit COPY wurde sowohl für einzelne als auch gleichzeitige Operationen verbessert; in manchen Fällen steigt die Performance um bis zu 300 %
- Führt CPU-Beschleunigung mit SIMD auf x86- und ARM-Architekturen ein und verbessert damit die Performance bei der Verarbeitung von ASCII- und JSON-Strings sowie beim Suchen in Arrays und Untertransaktionen
Logische Replikation
- Logische Replikation kann nun auf Standby-Instanzen ausgeführt werden, was neue Optionen für die Verteilung von Workloads ermöglicht
- Änderungen lassen sich statt über eine stark ausgelastete Primary über eine Standby an nachgelagerte Systeme replizieren
- Auch die Performance der logischen Replikation wurde verbessert
- Subscriber können große Transaktionen mit parallelen Workern anwenden
- Bei Tabellen ohne Primärschlüssel können Zeilen über B-Tree-Indizes statt per sequenziellem Scan gefunden werden
- Unter bestimmten Bedingungen kann das initiale Synchronisieren von Tabellen durch Nutzung des Binärformats beschleunigt werden
Developer Experience
- Fügt weitere Syntax aus dem SQL/JSON-Standard hinzu, darunter Konstruktoren und Prädikate wie JSON_ARRAY(), JSON_ARRAYAGG() und IS JSON
- Unterstriche in Tausenderzahlen sind jetzt möglich (5_432_000)
psql erhält \bind, sodass sich Abfragen mit Parametern schreiben und durch Variablen ersetzen lassen
- Verbesserte Unterstützung für die Sortierung von Text
Monitoring
- Fügt
pg_stat_io hinzu, das Metriken für eine detaillierte Analyse von I/O-Zugriffsmustern bereitstellt
- Fügt der View
pg_stat_all_tables Timestamp-Felder hinzu, die erfassen, wann eine Tabelle oder ein Index zuletzt gescannt wurde
- Macht
auto_explain besser lesbar, indem an parametrisierte Statements übergebene Werte protokolliert werden
Zugriffskontrolle und Sicherheit
- Bietet granularere Optionen für die Zugriffskontrolle
- Verbessert weitere Sicherheitsfunktionen, darunter die Verwaltung der Dateien
pg_hba.conf und pg_ident.conf sowie die Ergänzung mehrerer sicherheitsorientierter Client-Verbindungsparameter
1 Kommentare
Hacker-News-Kommentare
\bindeingeführt, die es ermöglicht, parametrisierte Abfragen wie in Anwendungen auszuführen, und dadurch an Beliebtheit gewinnt.debug_io_directsteht.