Veröffentlichung von PostgreSQL 17

Nach einem Jahr Entwicklung wurde die neue stabile Version des DBMS PostgreSQL 17 veröffentlicht. Updates für die neue Version werden bis November 2029 alle fünf Jahre bereitgestellt. Die Unterstützung für PostgreSQL 12.x, die älteste unterstützte Version, endet am 14. November.

Hauptneuheiten:

  • Bei der Ausführung der VACUUM-Operation (Aufräumen, Reinigung und Packen des Speichers) wird eine neue Datenstruktur verwendet, die bis zu 20-mal weniger Speicher benötigt. Der Wechsel zu dieser neuen Struktur hat die Durchführung von VACUUM-Operationen beschleunigt und den Verbrauch gemeinsam genutzter Ressourcen reduziert.
  • Die Optimierung der Ein-/Ausgabeleistung wurde fortgesetzt. Durch die Verbesserung des Codes zur Verarbeitung des Write-Ahead-Logs (WAL) konnte die Schreibleistung in Systemen mit einer hohen Anzahl gleichzeitiger Anfragen um bis zu das Doppelte gesteigert werden. Es wurde eine neue Schnittstelle für Streaming-Ein- und Ausgaben vorgeschlagen, die die Geschwindigkeit des sequenziellen Datenzugriffs in Tabellen erhöht und die Aktualisierung der Statistiken für den Abfrage-Planer nach der Durchführung der ANALYZE-Operation beschleunigt.
  • Die Anfragenleistung mit dem "IN"-Ausdruck wurde erhöht, wenn die Indizes auf Basis der B-Baum-Struktur verwendet werden. Die Möglichkeit zur parallelen Erstellung von BRIN-Indizes (Block Range Index) wurde implementiert. Im Abfrageplaner wurden die Prüfungen von "NOT NULL" optimiert und die Verarbeitung von Common Table Expressions (CTE), die mit dem SQL-Befehl "WITH" definiert sind, beschleunigt. Die Nutzung von Vektorprozessor-Instruktionen (SIMD) wurde für die Beschleunigung bestimmter Berechnungen ermöglicht; zum Beispiel werden AVX-512-Instruktionen zur Beschleunigung der Funktion bit_count eingesetzt.
  • Die Unterstützung für neue Funktionen zur Arbeit mit dem JSON-Format, die im SQL/JSON-Standard definiert sind, wurde implementiert. Die Funktion JSON-TABLE wurde hinzugefügt, um Daten aus dem JSON-Format in reguläre PostgreSQL-Tabellen zu transformieren, sowie neue jsonpath-Operatoren für die Umwandlung von JSON-Daten in native PostgreSQL-Datentypen. Neue Funktionen wurden für die Erstellung (JSON, JSON_SCALAR und JSON_SERIALIZE) und Abfrage (JSON_EXISTS, JSON_QUERY und JSON_VALUE) von Daten im JSON-Format vorgeschlagen.
  • Die SQL-Befehle "MERGE" wurden erweitert, sodass bedingte SQL-Ausdrücke erstellt werden können, die INSERT-, UPDATE- und DELETE-Operationen in einer einzigen Anweisung kombinieren. Die Unterstützung für den RETURNING-Ausdruck wurde hinzugefügt, um Werte basierend auf hinzugefügten, aktualisierten oder gelöschten Zeilen zu berechnen und zurückzugeben. Außerdem wurde die Unterstützung zur Aktualisierung von Sichten implementiert.
  • Die Möglichkeiten zum Laden und Exportieren von Daten im Batch-Modus wurden erweitert. In der COPY-Anweisung wurde die Exportgeschwindigkeit großer Zeilen bis zum Doppelten erhöht, die Kopie optimiert, wenn die Quell- und Zielkodierungen übereinstimmen, und die ON_ERROR-Option hinzugefügt, die es ermöglicht, den Import nach Fehlern beim Einfügen von Daten fortzusetzen.
  • Für partitionierte Tabellen wurde die Nutzung von Spalten mit eindeutigen Identifikatoren sowie die Unterstützung der Abfrageoptimierungstechnik „Constraint exclusion“ hinzugefügt.
  • In der Foreign Data Wrapper (postgres_fdw) Möglichkeit zur Anbindung externer Tabellen wurde die Übertragung nach außen implementiert. der Server Unterabfragen „EXISTS“ und „IN“.
  • Eine integrierte plattformunabhängige Engine für die Verarbeitung von Locale-Eigenschaften "Collation" wurde umgesetzt. Diese wird verwendet, um Sortierregeln und Methoden für den semantischen Vergleich von Zeichen zu definieren. Zum Beispiel wird beim Sortieren von numerischen Werten auf das Vorhandensein von Minuszeichen und Punkten sowie auf verschiedene Schreibweisen geachtet, während bei Vergleichen die Groß- und Kleinschreibung sowie Akzentzeichen nicht berücksichtigt werden. Die neue Engine gewährleistet ein einheitliches Verhalten bei der Sortierung von Abfrageergebnissen, unabhängig davon, auf welcher Plattform PostgreSQL ausgeführt wird.
  • Der Mechanismus der logischen Replikation ermöglicht die Übertragung von Änderungen, die während der Hinzufügung, Löschung oder Aktualisierung von Datensätzen in der Datenbank vorgenommen werden, auf einen anderen Server und vereinfacht so den Aktualisierungsprozess der Datenbankmanagementsysteme. Früher musste bei einem Wechsel auf eine neue, signifikante Version die logische Replikationsslots gelöscht und die Daten neu synchronisiert werden, aber jetzt ist das nicht mehr erforderlich. Für ausfallsichere Konfigurationen wurde eine Möglichkeit zur Steuerung des Failovers auf einen Backup-Server für die logische Replikation implementiert. Außerdem wurde das neue Tool pg_createsubscriber hinzugefügt, um eine physische Replik über in eine neue logische Replik umzuwandeln.
  • Eine neue Option „sslnegotiation“ wurde hinzugefügt, um direkte Vereinbarungen über gesicherte TLS-Verbindungen mit der TLS-Erweiterung ALPN zu ermöglichen.
  • Die vordefinierte Rolle pg_maintain wurde implementiert, die dem Benutzer das Recht einräumt, Wartungsoperationen im Zusammenhang mit dem Datenbankmanagementsystem durchzuführen.
  • In das pg_basebackup-Tool, das zur Erstellung von Datenbanksicherungen verwendet wird, wurde die Unterstützung für inkrementelle Sicherungen hinzugefügt. Zur Rekonstruktion einer vollständigen Sicherung aus einer Reihe von inkrementellen Kopien wurde ein neues Tool namens pg_combinebackup vorgeschlagen. Im pg_dump-Tool wurde die Option „—filter“ hinzugefügt, um die in das Dump einbezogenen Objekte auszuwählen.
  • Bei der Analyse von Abfragen mit dem SQL-Befehl „EXPLAIN“ wurde die Ausgabe der Zeit, die für das Lesen und Schreiben von lokalen Blöcken bei Ein-/Ausgabeaufträgen aufgewendet wurde, implementiert. Dem „EXPLAIN“-Befehl wurden auch zwei neue Optionen „MEMORY“ und „SERIALIZE“ hinzugefügt, mit denen der verwendete Speicher und die Zeit, die für die Umwandlung der Daten zur Übertragung über das Netzwerk benötigt wird, bestimmt werden können.
  • Die Fortschrittsanzeige für die Ausführung der VACUUM-Operation mit Indizes wurde sichergestellt.
  • Das systemweite Ansicht pg_wait_events wurde hinzugefügt, das in Kombination mit der Ansicht pg_stat_activity eine detailliertere Untersuchung der Gründe für das Warten aktiver Sitzungen ermöglicht.

Quelle: opennet.ru

Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen 🔥 Zuverlässiges Webhosting mit DDoS-Schutz, VPS- und VDS-Server kaufen | ProHoster