Die Veröffentlichung der Datenbankmanagementsysteme PostgreSQL 13

Nach einem Jahr Entwicklung wurde veröffentlicht neuer stabiler Zweig des DBMS PostgreSQL 13. Aktualisierungen fĂŒr den neuen Zweig werden veröffentlicht ĂŒber einen Zeitraum von fĂŒnf Jahren bis November 2025.

Haupt- Neuheiten:

  • Implementiert Deduplication von DatensĂ€tzen in B-Baum-Indizes, die die Abfrageleistung verbessert und den Speicherplatzverbrauch beim Indizieren von DatensĂ€tzen mit wiederholten Daten verringert hat. Die Deduplication erfolgt durch einen periodischen Start des Verarbeitungshandlers, der die Gruppen wiederholter Tupel zusammenfĂŒhrt und Duplikate durch Verweise auf eine gespeicherte Kopie ersetzt.
  • Die Abfrageleistung wurde erhöht, wenn Aggregatfunktionen, gruppierte Mengen (GROUPING SETS) oder partitionierte Tabellen verwendet werden. Die Optimierungen beziehen sich auf die Verwendung von Hashes anstelle der tatsĂ€chlichen Daten beim Aggregieren, was es ermöglicht, alle Daten nicht im Arbeitsspeicher platzieren zu mĂŒssen, wenn große Abfragen verarbeitet werden. Bei der Partitionierung wurde die Anzahl der Situationen, in denen Abschnitte verworfen oder zusammengefĂŒhrt werden können, erweitert.
  • Die Möglichkeit zur Nutzung wurde hinzugefĂŒgt erweiterte Statistiken, die mit dem Befehl „CREATE STATISTICS“ erstellt werden, um die Effizienz der Abfrageplanung zu verbessern, die Bedingungen „OR“ enthĂ€lt oder in Listen mit den AusdrĂŒcken „IN“ oder „ANY“ sucht.
  • Die Reinigung von Indizes bei der DurchfĂŒhrung der Operation VACUUM wurde durch die Parallelisierung der MĂŒllabfuhr in Indizes beschleunigt. Mit dem neuen Parameter „PARALLEL“ kann der Administrator die Anzahl der Threads festlegen, die gleichzeitig fĂŒr VACUUM gestartet werden. Es wurde die Möglichkeit hinzugefĂŒgt, die automatische AusfĂŒhrung von VACUUM nach dem EinfĂŒgen von Daten zu initiieren.
  • Es wurde UnterstĂŒtzung fĂŒr inkrementelles Sortieren hinzugefĂŒgt, das es ermöglicht, Daten, die in einem vorherigen Schritt sortiert wurden, zur Beschleunigung der Sortierung in den folgenden Verarbeitungsschritten zu verwenden. Um die neue Optimierung im Abfrageplaner zu aktivieren, ist eine Einstellung „enable_incremental_sort“ vorgesehen, die standardmĂ€ĂŸig aktiviert ist.
  • Die Möglichkeit wurde hinzugefĂŒgt, die GrĂ¶ĂŸe von Replikations-Slots zu begrenzen, die im automatischen Modus garantieren, dass Segmente des Protokolls der verzögerten Aufzeichnung (WAL) aufbewahrt werden, bis sie von allen Backup-Servern, die Replikate empfangen, erhalten wurden. Replikationsslots erlauben es dem Hauptserver auch nicht, Zeilen zu löschen, die zu Konflikten fĂŒhren könnten, selbst wenn der Backup-Server offline ist. Mit dem Parameter max_slot_wal_keep_size kann jetzt die maximale GrĂ¶ĂŸe von WAL-Dateien begrenzt werden, um eine Erschöpfung des Speicherplatzes zu verhindern.
  • Die Möglichkeiten zur Überwachung der AktivitĂ€ten der DBMS wurden erweitert: Der Befehl EXPLAIN zeigt zusĂ€tzliche Statistiken zur Nutzung des WAL-Protokolls an; im pg_basebackup wurde die Möglichkeit eingefĂŒhrt, den Status der AusfĂŒhrung kontinuierlicher Backups zu verfolgen; im ANALYZE-Befehl wurde die Indikierung des Fortschritts der Operation implementiert.
  • Ein neuer Befehl wurde hinzugefĂŒgt pg_verifybackup , um die IntegritĂ€t der mit dem pg_basebackup-Befehl erstellten Sicherungen zu ĂŒberprĂŒfen.
  • Bei der Arbeit mit JSON unter Verwendung der Operatoren jsonpath ist die Anwendung der Funktion datetime() zur Umwandlung von Zeitformaten (ISO 8601-Strings und nativen PostgreSQL-Zeittypen) erlaubt. Zum Beispiel können Konstruktionen wie „jsonb_path_query(‘[„2015-8-1“, „2015-08-12“]’, ‘$[*] ? (@.datetime() < "2015-08-2".datetime())')" und "jsonb_path_query_array('["12:30", "18:40"]', '$[*].datetime("HH24:MI")')" verwendet werden.
  • Eine eingebaute Funktion wurde hinzugefĂŒgt gen_random_uuid() , um UUID-Bezeichner v4 zu generieren.
  • Im Systems des Partitionierens gibt es nun vollstĂ€ndige UnterstĂŒtzung fĂŒr logische Replikation und durch den Ausdruck „BEFORE“
    Trigger, die auf Zeilenebene arbeiten.
  • Die Syntax „FETCH FIRST“ erlaubt jetzt die Verwendung des Ausdrucks „WITH TIES“, der zusĂ€tzliche Zeilen zurĂŒckgibt, die sich am Ende der Ergebnismenge befinden, die nach der Anwendung von „ORDER BY“ erhalten wurde.
  • Das Konzept der vertrauenswĂŒrdigen Erweiterungen („trusted extension“) wurde implementiert, die von normalen Benutzern ohne Administratorrechte der DBMS installiert werden können. Die Liste dieser Erweiterungen ist von vornherein festgelegt und kann von einem Superuser erweitert werden. Zu den vertrauenswĂŒrdigen Erweiterungen gehören pgcrypto, tablefunc, hstore Zertifikate mit kubeadm
  • Im Mechanismus zur Anbindung externer Tabellen (Foreign Data Wrapper) postgres_fdw wird die UnterstĂŒtzung fĂŒr die Authentifizierung auf Basis von Zertifikaten implementiert. Bei Verwendung der SCRAM-Authentifizierung dĂŒrfen die Clients „Kanalbindung“ (channel binding) anfordern.

Quelle: opennet.ru

60GB SSD 8Gb DDR4