Release der Datenbank PostgreSQL 17

Nach einem Jahr der Entwicklung wurde der neue stabile Branch der Datenbank PostgreSQL 17 veröffentlicht. Updates fĂŒr den neuen Branch werden fĂŒnf Jahre lang bis November 2029 bereitgestellt. Die UnterstĂŒtzung fĂŒr PostgreSQL 12.x, den Ă€ltesten unterstĂŒtzten Branch, wird am 14. November eingestellt.

Hauptneuheiten:

  • Bei der AusfĂŒhrung der VACUUM-Operation (MĂŒllsammlung, Reinigung und Verpackung des Datenspeichers) ist eine neue Datenstruktur eingefĂŒhrt worden, die bis zu 20 Mal weniger Speicher benötigt. Der Wechsel zu dieser neuen Struktur hat die AusfĂŒhrung von VACUUM-Operationen beschleunigt und den Verbrauch gemeinsam genutzter Ressourcen reduziert.
  • Die Optimierung der Eingabe-/Ausgabeleistung wurde fortgesetzt. Durch die Verbesserung des Codes zur Verarbeitung des Write-Ahead Logging (WAL) konnte die Durchsatzrate von Schreiboperationen in Systemen mit einer hohen Anzahl gleichzeitig ausgefĂŒhrter Abfragen verdoppelt werden. Eine neue Schnittstelle fĂŒr das Streamen von Ein-/Ausgaben wurde vorgeschlagen, die die Geschwindigkeit der sequentiellen Datenabfrage in Tabellen erhöht hat und die Aktualisierung der Statistiken fĂŒr den Abfrageplaner nach der AusfĂŒhrung der ANALYZE-Operation beschleunigt hat.
  • Die Leistung von Abfragen mit dem Ausdruck „IN“ wurde erhöht, wenn Indexe auf der Basis der B-Tree-Struktur verwendet werden. Die Möglichkeit des parallelen Aufbaus von BRIN-Indexen (Block Range Index) wurde implementiert. Im Abfrageplaner wurden die ÜberprĂŒfungen auf „NOT NULL“ optimiert und die Verarbeitung von Common Table Expressions (CTE), die mit dem SQL-Befehl „WITH“ definiert werden, beschleunigt. Der Einsatz von Vektorprozessoranweisungen (SIMD) zur Beschleunigung bestimmter Berechnungen, beispielsweise fĂŒr die Funktion bit_count, wurde durch AVX-512-Anweisungen realisiert.
  • UnterstĂŒtzung neuer Funktionen fĂŒr die Arbeit mit dem JSON-Format, wie im SQL/JSON-Standard definiert, wurde implementiert. Die Funktion JSON-TABLE wurde hinzugefĂŒgt, um Daten aus dem JSON-Format in gewöhnliche PostgreSQL-Tabellen zu konvertieren, sowie neue jsonpath-Operatoren zur Konvertierung von JSON-Daten in native PostgreSQL-Datentypen. Neue Funktionen zur Erstellung (JSON, JSON_SCALAR und JSON_SERIALIZE) und Abfrage (JSON_EXISTS, JSON_QUERY und JSON_VALUE) von Daten im JSON-Format wurden vorgeschlagen.
  • Die Möglichkeiten des SQL-Befehls „MERGE“ wurden erweitert, der bedingte SQL-AusdrĂŒcke ermöglicht, welche INSERT-, UPDATE- und DELETE-Operationen in einer einzigen Anweisung kombinieren. Es wurde UnterstĂŒtzung fĂŒr den RETURNING-Ausdruck hinzugefĂŒgt, der es ermöglicht, Werte basierend auf hinzugefĂŒgten, aktualisierten oder gelöschten Zeilen zu berechnen und zurĂŒckzugeben. Die UnterstĂŒtzung fĂŒr die Aktualisierung von Sichten wurde realisiert.
  • 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 zu zweimal erhöht, das Kopieren bei Übereinstimmung der Quell- und Zielcodierungen optimiert 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 Möglichkeit zur Verwendung von Spalten mit eindeutigen Identifikatoren und UnterstĂŒtzung fĂŒr die Optimierungstechnik „Constraint exclusion“ hinzugefĂŒgt.
  • Im System zum Anschluss externer Tabellen Foreign Data Wrapper (postgres_fdw) wurde die Möglichkeit zur Übertragung an externe Server Unterabfragen „EXISTS“ und „IN“ realisiert.
  • Ein eingebauter plattformunabhĂ€ngiger Motor zur Verarbeitung von Locale-Eigenschaften („Collation“), der zur Festlegung von Sortierregeln und zu Methoden zur sinnvollen Zeichenvergleich verwendet wird, wurde implementiert (z. B. werden bei der Sortierung numerischer Werte das Vorhandensein von Minus und Punkt vor der Zahl sowie verschiedene Schreibweisen berĂŒcksichtigt, wĂ€hrend bei Vergleichen die Groß-/Kleinschreibung und die Anwesenheit von Akzenten nicht beachtet werden). Der neue Motor garantiert ein einheitliches Verhalten bei der Sortierung von Abfrageergebnissen, unabhĂ€ngig von der Plattform, auf der PostgreSQL ausgefĂŒhrt wird.
  • Im Mechanismus der logischen Replikation, der die Übertragung von Änderungen an einen anderen Server ermöglicht, die in der DB wĂ€hrend des HinzufĂŒgens, Löschens oder Aktualisierens von DatensĂ€tzen vorgenommen werden, wurde der Aktualisierungsprozess der DBMS vereinfacht. Wenn frĂŒher beim Übergang zu einer neuen bedeutenden Version die Slots der logischen Replikation entfernt und die Daten erneut synchronisiert werden mussten, kann jetzt auf das Löschen von Slots verzichtet werden. FĂŒr fehlertolerante Konfigurationen wurde die Möglichkeit zur Steuerung des Wechsels zu einem Backup-Server (Failover) fĂŒr die logische Replikation implementiert. Ein neues Dienstprogramm pg_createsubscriber wurde hinzugefĂŒgt, um eine physische Replik in eine neue logische Replik umzuwandeln.
  • Eine neue Option „sslnegotiation“ wurde hinzugefĂŒgt, um gesicherte TLS-Verbindungen direkt mit der TLS-Erweiterung ALPN zu vereinbaren.
  • Die vordefinierte Rolle pg_maintain wurde implementiert, die dem Benutzer das Recht zur DurchfĂŒhrung von Wartungsoperationen fĂŒr die DBMS einrĂ€umt.
  • Das Dienstprogramm pg_basebackup, das zum Erstellen von Datenbanksicherungen verwendet wird, hat UnterstĂŒtzung fĂŒr inkrementelle Backups erhalten. Ein neues Dienstprogramm pg_combinebackup wurde vorgeschlagen, um vollstĂ€ndige Backups aus einer Reihe von inkrementellen Kopien zu rekonstruieren. Im Dienstprogramm pg_dump wurde die Option „—filter“ hinzugefĂŒgt, um die in das Dump einzuschließenden Objekte auszuwĂ€hlen.
  • Bei der Analyse von Abfragen mit dem SQL-Befehl „EXPLAIN“ wurde die Ausgabe der Zeit implementiert, die fĂŒr das Lesen und Schreiben lokaler Blöcke beim Ein-/Ausgabevorgang aufgebracht wird. Dem Befehl „EXPLAIN“ wurden auch zwei neue Optionen „MEMORY“ und „SERIALIZE“ hinzugefĂŒgt, mit denen die GrĂ¶ĂŸe des verwendeten Speichers und die Zeit, die fĂŒr die Umwandlung von Daten zur Übertragung ĂŒber das Netzwerk benötigt wird, bestimmt werden können.
  • Es wurde eine Fortschrittsanzeige fĂŒr die AusfĂŒhrung von VACUUM-Operationen mit Indizes bereitgestellt.
  • Eine Systemansicht pg_wait_events wurde hinzugefĂŒgt, die zusammen 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 Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server đŸ”„ ZuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz kaufen, VPS VDS Server - ProHoster