Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 5 Min.

Intelligenter und widerstandsfähiger

Das ist neu in PostgreSQL 18.
© EMGenie

Erst vor kurzem habe ich einen Blogbeitrag über die neuen Funktionen von SQL Server 2025 veröffentlicht und dabei die Zukunftsaussichten von Microsoft mit seiner führenden Datenbank-Engine beleuchtet. Heute möchte ich in diesem Sinne weitermachen – diesmal jedoch aus der PostgreSQL-Welt. PostgreSQL 18 wurde Ende September veröffentlicht, und wie immer hat die Open-Source-Community eine beeindruckende Reihe von Verbesserungen hervorgebracht, die eine eingehende Betrachtung wert sind. Dieser Beitrag führt Sie durch die Highlights, zeigt Anwendungsbeispiele und verlinkt auf die offizielle Dokumentation, damit Sie die Details selbst erkunden können (Bild 1).

PostgreSQL 18 ist da (Bild 1)

PostgreSQL 18 ist da (Bild 1)

© Autor

Leistung und Inneres

Als ich zum ersten Mal die io_method-Einstellung umschaltete und die Ansicht pg_aios zum Leben erweckte, wurde mir klar, dass PostgreSQL 18 keine Zurückhaltung zeigte. Das neue asynchrone E/A-Subsystem ermöglicht es Backends, mehrere Leseanforderungen gleichzeitig in die Warteschlange zu stellen, was sequenzielle Scans, Bitmap-Heap-Scans und sogar VACUUM-Operationen deutlich effizienter macht.

Auf einem Testrechner mit einer Tabelle mit zwei Milliarden Zeilen reduzierte die Umstellung auf io_method = 'worker' (oder io_method = 'io_uring', falls verfügbar) die Abfragelatenz deutlich. Bei vielen überlappenden I/O-Anfragen bleibt das Backend auch während des Wartens auf Festplattenlesevorgänge beschäftigt. Die pg_aios-Ansicht zeigt, welche Dateihandles in der AIO-Warteschlange verfolgt werden.

Eine weitere interne Änderung betrifft die Indexverwaltung. PostgreSQL 18 unterstützt nun Skip-Scans für mehrspaltige B-Tree-Indizes. Angenommen, Sie haben einen Index für (Nachname, Vorname). Bisher umgingen Abfragen, die nur nach dem Vornamen filterten, den Index und griffen auf den sequenziellen Scan zurück. Jetzt kann

 

SELECT * FROM person WHERE first_name = 'Klaus';

 

den B-Tree-Index weiterhin nutzen, indem er die Bereiche der Nachname-Werte „überspringt“. Der Planer verwendet Sortierinformationen, um das Scannen irrelevanter Bereiche zu vermeiden.

In dieser Version sind auch parallele GIN-Indexerstellungen enthalten, die die Indexerstellung bei JSONB- oder Volltext-Workloads beschleunigen.

SQL-Funktionen und Entwicklererfahrung

Während die Leistung oft im Vordergrund steht, erweitert PostgreSQL 18 auch die Ausdruckskraft auf überraschende Weise. Eine meiner Lieblingsfunktionen ist die Unterstützung virtuell generierter Spalten. In früheren Versionen mussten generierte Spalten gespeichert (das heißt berechnet und materialisiert) werden. Version 18 führt virtuell (beim Lesen) generierte Spalten ein, die keinen Speicherplatz belegen, sich aber bei Abfragen wie normale Spalten verhalten.

 

ALTER TABLE orders
  ADD COLUMN gross_total numeric GENERATED ALWAYS AS (net_total * (1 + vat_rate)) VIRTUAL;

 

Die Spalte brutto_total wird nie gespeichert, sondern wie jede andere Spalte verknüpft, projiziert und repliziert. Dies ist besonders nützlich, wenn viele abgeleitete Werte vorhanden sind und Sie keine redundante Speicherung wünschen.

PostgreSQL 18 wagt sich auch tiefer in den Bereich der zeitlichen Einschränkungen vor. Sie können jetzt PRIMARY KEY- oder UNIQUE- Einschränkungen deklarieren, die überlappende Zeiträume über die WITHOUT OVERLAPS-Klausel verbieten, und ebenso FOREIGN KEY … PERIOD verwenden, um auf Zeiträume zu verweisen.

 

CREATE TABLE contracts (
  id bigint,
  valid tstzrange NOT NULL,
  PRIMARY KEY (id) WITHOUT OVERLAPS
);

 

Dadurch wird sichergestellt, dass sich die Gültigkeitszeiträume zweier Zeilen mit derselben ID nicht überschneiden. Dies ist eine leistungsstarke Möglichkeit, zeitbasierte Geschäftslogik in Ihr Datenmodell zu integrieren.

Eine weitere kleine, aber feine Neuerung ist die Verbesserung der RETURNING-Klauseln: Sie können nun sowohl auf alte als auch auf neue Zeilenversionen in INSERT, UPDATE, DELETE und MERGE verweisen. Das bedeutet, dass Sie Transformationen und Audit-Protokollierung in einem Rutsch durchführen können.

Und zur ID-Generierung gibt es uuidv7(), das zeitgeordnete UUIDs erzeugt, die Eindeutigkeit mit Indexfreundlichkeit kombinieren. Die PostgreSQL-Dokumentation zu UUID-Typen behandelt diese neue Funktion.

Betrieb, Sicherheit und Beobachtbarkeit

Upgrades waren früher mit dem Risiko von Leistungseinbußen verbunden – unmittelbar nach der Migration mussten Sie jede Tabelle neu analysieren, und Abfragepläne reagierten häufig fehlerhaft. PostgreSQL 18 behebt dieses Problem: pg_upgrade behält jetzt die Optimiererstatistiken bei. Das bedeutet, dass Ihr Cluster nach einem Upgrade nicht bei null beginnt und Ihre Abfragen nicht den üblichen Leistungseinbruch erleiden.

Aus Sicherheits- und Integritätsgründen sind Datenprüfsummen jetzt standardmäßig aktiviert, wenn Sie initdb ausführen, um vor unbemerkter Beschädigung zu schützen. Sie können dies bei Bedarf natürlich über --no-data-checksums deaktivieren.

Darüber hinaus kennzeichnet PostgreSQL 18 die MD5-Passwortauthentifizierung als veraltet und empfiehlt Benutzern SCRAM oder modernere Methoden. Außerdem wird Unterstützung für die OAuth-2.0-Authentifizierung hinzugefügt – nützlich für die Integration mit Identitätsanbietern.

Beobachtbarkeit und Diagnose werden großgeschrieben. EXPLAIN ANALYZE berücksichtigt jetzt automatisch die Puffernutzung (BUFFERS), ohne dass zusätzliche Optionen erforderlich sind. Im ausführlichen Modus erhalten Sie außerdem CPU-, WAL- und durchschnittliche Lesestatistiken sowie die Anzahl der Index-Lookups.

Außerdem wurden Verbesserungen bei der Protokollierung vorgenommen: log_lock_failures, feinere Platzhalter wie %L (Client-IP) in log_line_prefix und eine bessere Berichterstattung über Replikationskonflikte.

Fazit

Als ich die internen Komponenten von PostgreSQL 18 durchging, neue Indexierungsstrategien erkundete, Schemadesigns neu formulierte und die Abfrageleistung vor und nach der Version maß, wurde mir eines klar: Diese Version ist nicht einfach „mehr vom Gleichen“. Sie ist eine Einladung, unsere Zeitmodellierung, unser erwartetes Verhalten bei Upgrades und die Menge an internen Aufgaben der Datenbank selbst zu überdenken.

Die Leistung erhält eine neue Engine (AIO), die Ausdruckskraft neue Hebel (virtuelle Spalten, zeitliche Einschränkungen, verbessertes RETURNING) und die Operationen erhalten weniger Reibungspunkte (Statistikerhaltung, Standardprüfsummen, OAuth). Jedes Feature ist Teil eines größeren Ansatzes, der PostgreSQL intelligenter und widerstandsfähiger macht.

Neueste Beiträge

1 plus 1 macht 2 - Mendix Artificial Intelligence Assistant
Low Code verspricht die Vereinfachung der Softwareproduktion, künstliche Intelligenz die Steigerung der Developer Productivity. Was passiert, wenn man beide kombiniert?
16 Minuten
22. Okt 2025
Loggingdaten-Einlaufstelle mit Komfortfunktionen - Best of NuGet, Teil 5
Die in Android implementierte Logging-Funktion ist ein leistungsfähiges Beispiel für moderne Logging-Systeme. Mit Serilog steht ein ähnliches System für .NET-Applikationen zur Verfügung, das allerdings einige weit über das große Vorbild hinausgehende Funktionen offeriert.
6 Minuten
22. Okt 2025
Beyond the Code: KI verändert die Entwicklerrolle – wer sich jetzt anpasst, bleibt vorne dabei
Generative KI-Tools steigern Effizienz und beschleunigen Workflows – doch sie stellen auch neue Anforderungen an Entwicklerteams. Gefragt sind strategisches Denken, Kreativität und die Bereitschaft, sich laufend weiterzuentwickeln.
5 Minuten
15. Okt 2025

Das könnte Dich auch interessieren

DDC hakt nach: Was sind die coolen Feature von EF Core 10?
Wenn einer mit EF Core umgehen kann, dann ist das Christian Giesswein. Im DDC-Interview nennt er Ursachen für langsame Datenzugriffe.
4 Minuten
6. Okt 2025
So werden aus LLMs und Vektordatenbanken hocheffiziente NLP-Suchmaschinen - Vektordatenbanken
Bislang wurden Vektordatenbanken fast ausschließlich im eCommerce-Bereich eingesetzt. Dann kamen Large Language Models wie GPT. Damit erlangen die Datenbanken einen ganz neuen Einsatzbereich.
7 Minuten
15. Jan 2024
Wexflow: .NET Open Source Workflow-Engine - CodeProject
Wexflow ist eine quelloffene und plattformübergreifende Workflow-Engine und Automatisierungsplattform, die darauf abzielt, wiederkehrende Aufgaben zu automatisieren.
2 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige