None
Open Source

PostgreSQL 13 erschienen

by Viktor Garske on Sept. 26, 2020, 1:35 p.m., with 1 comments
Das relationale Datenbankmanagementsystem PostgreSQL ist in Version 13 veröffentlicht worden. Optimiert wurden der Speicherplatzverbrauch sowie die Performance.

PostgreSQL ermöglicht seit einem knappen viertel Jahrhundert bereits die Verwaltung relationaler Datenbanken und stellt eine Alternative zu MySQL oder ähnlichen RDMS dar. Seit 2017 wurde jedes Jahr im oder kurz vor dem Oktober ein neues Major-Release des stetig an Popularität gewinnenden Systems veröffentlicht. So hat auch dieses Jahr die PostgreSQL Global Development Group am 24. September 2020 eine neue Version veröffentlicht: PostgreSQL 13.

Der neuste Release ermöglicht eine bessere Verarbeitung großer Datenbanken, besonders bei der Administration und im Betrieb: PostgreSQL 13 kann besser mit duplizierten Daten in B-Tree Indizes umgehen, was Speicherplatzeinsparungen zur Folge hat. Dies betrifft viele Datenbanken, da B-Tree Indizes die Standardindizes im RDBMS sind.

Bessere Administration

Weitere Verbesserungen gibt es beim VACUUM-Befehl. Zur Erinnerung: PostgreSQL greift, ähnlich wie andere Datenbanken, auf die Multiversion Concurrency Control-Verfahrenstechnik zurück. Diese isoliert im Grunde alle Transaktionen voneinander. Wird nun ein Datensatz aktualisiert (UPDATE), so wird das nicht an zentraler Stelle gespeichert, da andere parallele Transaktionen gerade noch auf die alte Version zugreifen könnten. Aus Performancegründen ist das Aufräumen ein getrennter Vorgang, der manuell über VACUUM, quasi den Garbage Collector, angestoßen werden muss. Die gute Nachricht: ab der neuen Version 13 gibt es die Option PARALLEL, damit VACUUM Indizes parallel verarbeiten kann. Allerdings gilt diese Nebenläufigkeit nicht für VACUUM FULL.

Mit max_slot_wal_keep_size kann nun bestimmt werden, wie viele WAL-Segmente von den Replication Slots im pg_wal-Verzeichnis vorgehalten werden dürfen, um Out-of-memory-Probleme auf der Primärdatenbank zu verhindern.

In der konkreten Anwendungsentwicklung hilft nun datetime() für SQL/JSON, um z. B. ISO 8601-Strings in für PostgreSQL native Datentypen zu konvertieren. Eine UUIDv4 kann nun nativ über gen_random_uuid() generiert werden.

Darüber hinaus kann mit dem neuen Kommando pg_verifybackup die Integrität von pg_basebackup-Erzeugnissen überprüft werden.

Sicherheit

Auf der Sicherheitsebene führt PostgreSQL 13 das Konzept der vertraulichen Erweiterungen ein, um einfachen Datenbank-Benutzern die Möglichkeit zu geben, zuvor von Superusers als vertraulich deklarierte Erweiterungen selbst zu installieren.

Neu ist auch das (erzwungene) Channel-Binding für Verbindungen, besonders bei SCRAM-Authentifziuerng. postgres_fdw kann nun Zertifikate für die Authentifzierung verwenden und mit dem sslpassword-Parameter können nun auch passwortgeschützte TLS-Zertifikate genutzt werden.

Weiterführende Informationen

Die vollständige Liste der Änderungen ist wie immer in den Release Notes zu finden, weiterhin sind auch die deutsche Pressemitteilung und die Pressemitteilung zum vorausgegangenen Beta-Release lesenswert.

PostgreSQL 13 ist ab sofort zum Bauen verfügbar und wird demnächst in die ersten Distributionen Einzug halten. Wer schon jetzt Version 13 ausprobieren möchte, kann auch auf das Docker-Image postgres:13 zurückgreifen.

Author image
Viktor Garske

Viktor Garske ist der Hauptautor des Blogs und schreibt gerne über Technologie, Panorama sowie Tipps & Tricks.

Comments (1)

Comments are not enabled for this entry.

Das Update - ganz ohne den Dockerscheiß - hat exzellent funktioniert. Nur das mit dem nötigen Upgrade des Datenverzeichnisses ist immer etwas anstrengend.