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

AI Slop vermeiden: Harness-First Engineering für Teams, die mit Coding Agenten arbeiten - Der neue Engpass heißt Vertrauen
Coding Agents wie GitHub Copilot, Cursor oder Claude Code haben die Produktivität von Entwicklungsteams dramatisch erhöht. Was früher Tage dauerte, entsteht heute in Stunden. Doch mit der Geschwindigkeit wächst ein neues Problem: Der Engpass liegt inzwischen im Vertrauen in das, was geschrieben wurde.
4 Minuten
4. Aug 2026
Building Features is easy – echten Wert liefern nicht - Interview
Eva Feigl erklärt im DWX-Interview, warum Teams oft am falschen Problem arbeiten – und wie Annahmen, Vanity Metriken und fehlendes Nutzer-Feedback echten Produkterfolg verhindern.
5. Aug 2026
PandaOS: Die Workstation, die ich mir immer gewünscht habe
Monatelang bin ich zwischen KI-Werkzeugen hin- und hergesprungen. Cursor, Claude Code, OpenCode, Aider. Jedes hatte etwas Geniales, doch keines fühlte sich vollständig an. Also habe ich ein eigenes Tool gebaut? PandaOS ist das Ergebnis.
6 Minuten

Das könnte Dich auch interessieren

Volltextsuche mit SQLite: FTS5 und Fuzzy Search - SQLite für .NET-Entwickler, Teil 4
Hochperformante Suche ohne externe Suchmaschine? Wie man mit der in SQLite eingebauten Volltextsuch-Engine FTS5 eine effiziente Suche mit Tippfehlertoleranz implementiert – und in welchen Fällen Elasticsearch doch die bessere Wahl ist.
6 Minuten
22. Apr 2026
SQLite: Wenn weniger mehr ist - SQLite für .NET-Entwickler, Teil 1
Für Entwicklerteams, die jeden Tag mit der Komplexität von Kubernetes, Cloud-Datenbanken und Terraform-Skripten ringen, liegt der eigentliche Gewinn von SQLite in der architektonischen Vereinfachung.
6 Minuten
KI: SQL Server versus Anwendungscode - SQL Server 2025 und Microsoft Azure AI, Teil 2
Wer SQL Server und Anwendungscode bewusst trennt, erhält eine Architektur, die sowohl performant als auch wartbar ist und sich langfristig stabil betreiben lässt.
6 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige