PostgreSQL 12-Veröffentlichung

Nach einem Jahr Entwicklung herausgegeben von Neuer stabiler Zweig des PostgreSQL 12 DBMS. Updates für den neuen Zweig wird rauskommen für fünf Jahre bis November 2024.

Haupt- Innovationen:

  • Unterstützung hinzugefügt für „generierte Spalten", dessen Wert auf der Grundlage eines Ausdrucks berechnet wird, der die Werte anderer Spalten in derselben Tabelle abdeckt (ähnlich wie Ansichten, jedoch für einzelne Spalten). Es gibt zwei Arten von generierten Spalten: gespeicherte und virtuelle. Im ersten Fall wird der Wert zum Zeitpunkt des Hinzufügens oder Änderns von Daten berechnet, und im zweiten Fall wird der Wert bei jedem Lesevorgang basierend auf dem aktuellen Status anderer Spalten berechnet. Derzeit unterstützt PostgreSQL nur gespeicherte generierte Spalten;
  • Es wurde die Möglichkeit hinzugefügt, Daten aus JSON-Dokumenten abzufragen Pfadausdrückeähnlich XPath und im SQL/JSON-Standard definiert. Bestehende Indexierungsmechanismen werden verwendet, um die Effizienz der Verarbeitung solcher Ausdrücke für im JSONB-Format gespeicherte Dokumente zu verbessern;
  • Standardmäßig aktiviert ist die Verwendung eines JIT-Compilers (Just-in-Time), der auf LLVM-Entwicklungen basiert, um die Ausführung einiger Ausdrücke während der SQL-Abfrageverarbeitung zu beschleunigen. JIT wird beispielsweise verwendet, um die Ausführung von Ausdrücken in WHERE-Blöcken, Ziellisten, Aggregatausdrücken und einigen internen Operationen zu beschleunigen;
  • Die Indexierungsleistung wurde erheblich verbessert. B-Tree-Indizes sind für den Einsatz in Umgebungen optimiert, in denen sich Indizes häufig ändern. TPC-C-Tests zeigen eine allgemeine Leistungssteigerung und eine durchschnittliche Reduzierung des Speicherplatzverbrauchs um 40 %. Reduzierter Overhead beim Generieren eines Write-Ahead-Protokolls (WAL) für GiST-, GIN- und SP-GiST-Indextypen. Für GiST wurde die Möglichkeit hinzugefügt, Wrapper-Indizes (über den INCLUDE-Ausdruck) zu erstellen, die zusätzliche Spalten enthalten. In Betrieb STATISTIKEN ERSTELLEN Es wird Unterstützung für die meisten Common-Value-Statistiken (MCV) bereitgestellt, um bei der Verwendung ungleichmäßig verteilter Spalten optimalere Abfragepläne zu erstellen.
  • Die Partitionierungsimplementierung ist für Abfragen optimiert, die Tabellen mit Tausenden von Partitionen umfassen, sich jedoch auf die Auswahl einer begrenzten Teilmenge von Daten beschränken. Die Leistung beim Hinzufügen von Daten zu partitionierten Tabellen mithilfe von INSERT- und COPY-Operationen wurde erhöht, und es ist auch möglich, neue Abschnitte über „ALTER TABLE ATTACH PARTITION“ hinzuzufügen, ohne die Abfrageausführung zu blockieren;
  • Unterstützung für die automatische Inline-Erweiterung verallgemeinerter Tabellenausdrücke hinzugefügt (Gemeinsamer Tabellenausdruck, CTE), die die Verwendung temporärer benannter Ergebnismengen ermöglichen, die mit der WITH-Anweisung angegeben werden. Die Inline-Bereitstellung kann die Leistung der meisten Abfragen verbessern, wird jedoch derzeit nur für nicht rekursive CTEs verwendet;
  • Unterstützung hinzugefügt nicht deterministisch Eigenschaften des Gebietsschemas „Sortierung“, mit dem Sie Sortierregeln und Vergleichsmethoden festlegen können, die die Bedeutung von Zeichen berücksichtigen (z. B. beim Sortieren digitaler Werte, das Vorhandensein eines Minus und eines Punktes vor einer Zahl und verschiedene Typen). der Schreibweise werden berücksichtigt, und beim Vergleich werden die Groß-/Kleinschreibung von Zeichen und das Vorhandensein eines Akzentzeichens nicht berücksichtigt) ;
  • Unterstützung für mehrstufige Client-Authentifizierung hinzugefügt, bei der Sie in pg_hba.conf die SSL-Zertifikatauthentifizierung (clientcert=verify-full) mit einer zusätzlichen Authentifizierungsmethode wie scram-sha-256 zur Authentifizierung kombinieren können;
  • Unterstützung für die Verschlüsselung des Kommunikationskanals bei der Authentifizierung über hinzugefügt GSSAPI, sowohl auf der Clientseite als auch auf der Serverseite;
  • Unterstützung für die Bestimmung von LDAP-Servern basierend auf „DNS SRV“-Einträgen hinzugefügt, wenn PostgreSQL mit OpenLDAP erstellt wird;
  • Operation hinzugefügt "GLEICHZEITIG NEU INDEXIEREN» um Indizes neu zu erstellen, ohne Schreibvorgänge auf den Index zu blockieren;
  • Befehl hinzugefügt pg_checksums, mit dem Sie die Überprüfung der Prüfsummen von Datenseiten für eine vorhandene Datenbank aktivieren oder deaktivieren können (zuvor wurde dieser Vorgang nur während der Datenbankinitialisierung unterstützt);
  • Ausgabe der Fortschrittsanzeige für die Operationen CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL und pg_checksums bereitgestellt;
  • Befehl hinzugefügt „ZUGRIFFSMETHODE ERSTELLEN» um Handler für neue Tabellenspeichermethoden zu verbinden, die für verschiedene spezifische Aufgaben optimiert sind. Derzeit ist „Heap“ die einzige integrierte Tabellenzugriffsmethode.
  • Die Konfigurationsdatei „recovery.conf“ wurde mit „postgresql.conf“ zusammengeführt. Als Indikatoren für den Übergang in den Wiederherstellungszustand nach einem Ausfall, jetzt sollte Verwenden Sie die Dateien „recovery.signal“ und „standby.signal“.

Source: opennet.ru

Kommentar hinzufügen