Entwicklung & Code
Postgres 18: Dreimal schnellere asynchrone Abfragen und virtuelle Spalten
Die neue Version von Postgres 18 bringt eine Reihe von Verbesserungen der Performance und neue Funktionen wie den Zugriff auf alte Werte bei INSERT
oder virtuelle Spalten für Abfragen. Für die sichere Authentifizierung bietet die Datenbank OAuth 2 und für das Passwort-Hashing wird SHA-256 verpflichtend.
Die wichtigste Neuerung für beschleunigte Abfragen ist das asynchrone IO-Subsystem (AIO), das „bis zu dreifache Performance-Verbesserungen beim Lesen aus dem Speicher bewiesen hat“, heißt es in der Ankündigung. AIO beschleunigt Read-ahead-Prozesse, für die die Datenbank entsprechende Mechanismen des jeweiligen Betriebssystems nutzt. Diese Mechanismen kennen nicht alle Spezifika einer Datenbank und können oft nicht richtig vorhersagen, welche Daten demnächst benötigt werden. AIO stellt nun mehrere parallele asynchrone Anfragen und beschleunigt so Read-ahead-Abfragen. AIO-Operationen umfassen sequenzielle und Bitmap-Heap-Scans sowie den VACUUM
-Befehl.
Anwenderinnen und Anwender können in den Einstellungen für io_method
zwischen AIO und dem alten synchronen System umschalten. Weitere Geschwindigkeitsgewinne ergeben sich durch Skip-Scan-Suchen bei mehrspaltigen B-tree-Indizes sowie durch eine verbesserte Ausführung von table joins
und hash joins
. Hardware-Beschleunigung gibt es nun für ARM NEON und SVE CPU.
Lesen Sie auch
Die automatischen Statistiken gehen ab Postgres 18 auch bei großen Updates nicht verloren, sodass die durch die Statistik aufgebauten Systemerkenntnisse erhalten bleiben. Das garantiert verbesserte Leistungswerte über ein Update hinaus.
Virtuelle Spalten und Zugriff auf alte Werte
Entwicklerinnen und Entwickler legen mit Postgres 18 nun virtuelle Spalten an, die Abfragen verarbeiten, ohne dass die Datenbank diese speichert. Das ist künftig die Standardoption. Auch gespeichert erzeugte Tabellen können Anwender künftig logisch replizieren.
Erfreuen wird viele Developer, dass sie bei den Befehlen INSERT
, UPDATE
, DELETE
und MERGE
nun auch Zugriff auf alte (OLD
) Werte haben und nicht nur und neuen (NEW
). Außerdem können sie zufällige UUIDs mit uuidv7()
einsetzen, die sich über Zeitstempel sortieren und besseres Caching erlauben.
Ferner lassen sich entfernte Tabellen auf der Basis von lokalen Schemata einfach mit dem Befehl CREATE FOREIGN TABLE ... LIKE
erzeugen.
Mehr Sicherheit mit OAuth 2 und SHA-2
Für die Authentifizierung von Anwendern unterstützt Postgres 18 OAuth 2. Weitere Sicherheitsfunktionen sind eine SSL-Validierung mit FIPS und ein Parameter ssl_tls13_ciphers
für TLS 1.3. Außerdem ist MD 5 für das Passwort-Hashing veraltet und wird demnächst deaktiviert. Postgres erfordert jetzt SCRAM-SHA-256
Details und weitere Neuerungen finden sich in der Ankündigung und den Release Notes.
(who)