PostgreSQL 15-Veröffentlichung

Nach einem Jahr Entwicklungszeit wurde ein neuer stabiler Zweig des PostgreSQL 15 DBMS veröffentlicht. Updates für den neuen Zweig werden über einen Zeitraum von fünf Jahren bis November 2027 veröffentlicht.

Wichtigste Neuerungen:

  • Unterstützung für den SQL-Befehl „MERGE“ hinzugefügt, der dem Ausdruck „INSERT ... ON CONFLICT“ ähnelt. Mit MERGE können Sie bedingte SQL-Anweisungen erstellen, die INSERT-, UPDATE- und DELETE-Vorgänge in einem einzigen Ausdruck kombinieren. Mit MERGE können Sie beispielsweise zwei Tabellen zusammenführen, indem Sie fehlende Datensätze einfügen und vorhandene aktualisieren. ZUSAMMENFÜHREN IN „customer_account ca“ MIT „recent_transactions t“ ON „t.customer_id = ca.customer_id“ WENN ÜBEREINSTIMMUNG, DANN AKTUALISIEREN.
  • Algorithmen zum Sortieren von Daten im Speicher und auf der Festplatte wurden erheblich verbessert. Abhängig von der Art der Daten zeigen Tests eine Steigerung der Sortiergeschwindigkeit von 25 % bis 400 %.
  • Fensterfunktionen mit row_number(), rank(), dense_rank() und count() wurden beschleunigt.
  • Die Möglichkeit der parallelen Ausführung von Abfragen mit dem Ausdruck „SELECT DISTINCT“ wurde implementiert.
  • Der Mechanismus zum Verbinden externer Tabellen Foreign Data Wrapper (postgres_fdw) implementiert die Unterstützung für asynchrone Commits zusätzlich zu der zuvor hinzugefügten Möglichkeit, Anforderungen an externe Server asynchron zu verarbeiten.
  • Es wurde die Möglichkeit hinzugefügt, LZ4- und Zstandard-Algorithmen (zstd) zum Komprimieren von WAL-Transaktionsprotokollen zu verwenden, was bei bestimmten Arbeitslasten gleichzeitig die Leistung verbessern und Speicherplatz sparen kann. Um die Wiederherstellungszeit nach einem Fehler zu verkürzen, wurde Unterstützung für den proaktiven Abruf von Seiten hinzugefügt, die im WAL-Protokoll angezeigt werden.
  • Das Dienstprogramm pg_basebackup bietet jetzt Unterstützung für die serverseitige Komprimierung von Sicherungsdateien mithilfe der Methoden gzip, LZ4 oder zstd. Es besteht die Möglichkeit, eigene Module zur Archivierung zu nutzen und so auf die Ausführung von Shell-Befehlen zu verzichten.
  • Für die Verarbeitung von Strings mit regulären Ausdrücken wurde eine Reihe neuer Funktionen hinzugefügt: regexp_count(), regexp_instr(), regexp_like() und regexp_substr().
  • Der Funktion range_agg() wurde die Möglichkeit hinzugefügt, Multirange-Typen („multirange“) zu aggregieren.
  • Der security_invoker-Modus wurde hinzugefügt, der es Ihnen ermöglicht, Ansichten zu erstellen, die als aufrufender Benutzer und nicht als Ersteller der Ansicht ausgeführt werden.
  • Für die logische Replikation wurde Unterstützung für das Filtern von Zeilen und die Angabe von Spaltenlisten implementiert, sodass der Absender eine Teilmenge der Daten aus der Tabelle für die Replikation auswählen kann. Darüber hinaus vereinfacht die neue Version das Konfliktmanagement, so ist es nun beispielsweise möglich, widersprüchliche Transaktionen zu überspringen und ein Abonnement automatisch zu deaktivieren, wenn ein Fehler erkannt wird. Die logische Replikation ermöglicht die Verwendung von zweiphasigen Commits (2PC).
  • Es wurde ein neues Protokollformat hinzugefügt – jsonlog, das Informationen in strukturierter Form im JSON-Format speichert.
  • Der Administrator hat die Möglichkeit, individuelle Rechte an Benutzer zu delegieren, um bestimmte Konfigurationsparameter des PostgreSQL-Servers zu ändern.
  • Das Dienstprogramm psql unterstützt jetzt die Suche nach Informationen zu Einstellungen (pg_settings) mithilfe des Befehls „\dconfig“.
  • Die Verwendung des gemeinsam genutzten Speichers ist für die Sammlung von Statistiken über den Serverbetrieb gewährleistet, wodurch ein separater Prozess zum Sammeln von Statistiken und zum regelmäßigen Zurücksetzen des Status auf die Festplatte entfällt.
  • Die Möglichkeit, die standardmäßigen ICU-Gebietsschemas „ICU Collation“ zu verwenden, wurde bereitgestellt; bisher konnten nur libc-Gebietsschemas als Standard-Gebietsschema verwendet werden.
  • Es wurde eine integrierte Erweiterung pg_walinspect vorgeschlagen, mit der Sie den Inhalt von Dateien mit WAL-Protokollen mithilfe von SQL-Abfragen überprüfen können.
  • Für das öffentliche Schema wurde allen Benutzern mit Ausnahme des Datenbankeigentümers die Berechtigung zum Ausführen des CREATE-Befehls entzogen.
  • Die Unterstützung für Python 2 wurde in PL/Python entfernt. Der veraltete exklusive Backup-Modus wurde entfernt.

Ergänzung: Von 19:00 bis 20:00 Uhr (MSK) findet ein Webinar statt, in dem die Änderungen in der neuen Version mit Pavel Luzanov (Postgres Professional) besprochen werden. Für diejenigen, die nicht an der Übertragung teilnehmen können, ist die Aufzeichnung von Pavels Juni-Bericht „PostgreSQL 15: MERGE and more“ auf PGConf.Russia geöffnet.

Source: opennet.ru

Kommentar hinzufügen