Nach einem Jahr Entwicklung Die neue stabile Version der Datenbank PostgreSQL 12. Aktualisierungen für die neue Version bis November 2024.
Haupt- :
- Unterstützung für „“, deren Werte auf der Grundlage eines Ausdrucks berechnet werden, der die Werte anderer Spalten in derselben Tabelle umfasst (ähnlich wie Ansichten, aber für einzelne Spalten). Generierte Spalten können zwei Typen sein – gespeicherte und virtuelle. Im ersten Fall wird der Wert beim Hinzufügen oder Ändern von Daten berechnet, im zweiten Fall bei jedem Lesen basierend auf dem aktuellen Zustand anderer Spalten. Derzeit unterstützt PostgreSQL nur gespeicherte generierte Spalten;
- Die Möglichkeit, Datenanfragen aus JSON-Dokumenten mithilfe von , die an die angelehnt sind und im SQL/JSON-Standard definiert sind. Um die Effizienz der Verarbeitung solcher Ausdrücke für Dokumente im JSONB-Format zu verbessern, werden bestehende Indexierungsmechanismen verwendet;
- Die Anwendung des JIT-Compilers (Just-in-Time) ist standardmäßig aktiviert, basierend auf den Fortschritten von LLVM, um die Ausführung bestimmter Ausdrücke während der SQL-Abfrageverarbeitung zu beschleunigen. Zum Beispiel ist JIT anwendbar zur Beschleunigung der Ausführung von Ausdrücken innerhalb von „WHERE“-Klauseln, Auswahllisten (Target Lists), aggregierten Ausdrücken und einigen internen Operationen;
- Die Leistung der Indizierung wurde erheblich gesteigert. B-Tree-Indizes sind optimiert für Bedingungen mit häufigen Änderungen der Indizes – in den TPC-C-Tests wurde insgesamt eine Leistungssteigerung und eine durchschnittliche Reduzierung des Speicherplatzbedarfs um 40 % festgestellt. Die Overheadkosten bei der Erstellung des Vorschauf-Logs (WAL) für GiST-, GIN- und SP-GiST-Indizes wurden gesenkt. Für GiST wurde die Möglichkeit zur Erstellung von Wrapper-Indizes (über den Ausdruck INCLUDE) hinzugefügt, die zusätzliche Spalten enthalten. Bei der Operation wurde die Unterstützung für Statistiken über die häufigsten Werte (MCV) gewährleistet, die die Erzeugung optimalerer Abfragepläne bei der Nutzung ungleichverteilter Spalten ermöglichen;
- Die Implementierung der Partitionierung ist für Anfragen optimiert, die Tabellen mit Tausenden von Partitionen umfassen, aber auf eine begrenzte Teilmenge von Daten zugreifen. Die Leistung beim Hinzufügen von Daten zu partitionierten Tabellen wurde durch die Verwendung von INSERT- und COPY-Operationen verbessert, und es ist nun möglich, neue Partitionen über „ALTER TABLE ATTACH PARTITION“ hinzuzufügen, ohne die Ausführung von Anfragen zu blockieren.
- Unterstützung für die automatische Inline-Ausdehnung von allgemeinen Tabellenausdrücken (, CTE) wurde hinzugefügt, die die Verwendung von temporären benannten Ergebnismengen ermöglichen, die mit dem WITH-Befehl definiert werden. Die Inline-Ausdehnung verbessert die Leistung der meisten Anfragen, wird jedoch vorerst nur für nicht rekursive CTEs verwendet.
- Unterstützung hinzugefügt für Eigenschaften der Lokalisierung „Collation“, die Regeln für die Sortierung und Vergleichsmethoden unter Berücksichtigung der Bedeutung von Zeichen definieren (zum Beispiel wird beim Sortieren von numerischen Werten das Vorhandensein eines Minus und eines Punktes vor der Zahl sowie verschiedene Schreibweisen berücksichtigt, während beim Vergleichen Groß- und Kleinschreibung sowie Akzentzeichen ignoriert werden);
- Die Unterstützung für die Mehrfaktor-Authentifizierung des Clients wurde hinzugefügt, bei der in pg_hba.conf die Authentifizierung mit SSL-Zertifikat (clientcert=verify-full) mit einer zusätzlichen Authentifizierungsmethode wie scram-sha-256 kombiniert werden kann;
- Die Unterstützung für die Verschlüsselung des Kommunikationskanals bei der Authentifizierung über , sowohl auf der Client- als auch auf der Serverseite, wurde hinzugefügt;
- Die Unterstützung für die Definition von LDAP-Servern basierend auf „DNS SRV“-Einträgen wurde hinzugefügt, wenn PostgreSQL mit OpenLDAP kompiliert wurde;
- Eine Operation „„ wurde hinzugefügt, um Indizes ohne Blockierung von Schreiboperationen im Index neu zu erstellen;
- Das Kommando , die es ermöglicht, die Überprüfung der Prüfziffern für Datenseiten für eine vorhandene Datenbank zu aktivieren oder zu deaktivieren (früher wurde diese Operation nur während der Initialisierung der Datenbank unterstützt);
- Ein Fortschrittsanzeiger für die Ausführung von CREATE INDEX-, REINDEX-, CLUSTER-, VACUUM FULL- und pg_checksums-Operationen wurde bereitgestellt;
- Der Befehl „“ wurde hinzugefügt, um Handler für neue Speicherzugriffsverfahren zu verbinden, die für verschiedene spezifische Aufgaben optimiert sind. Derzeit ist die einzige eingebaute Zugriffsmethode für Tabellen „heap“.
- Die Konfigurationsdatei recovery.conf wurde mit postgresql.conf zusammengeführt. Als Indikatoren für den Übergang in den Wiederherstellungszustand nach einem Ausfall werden nun die Dateien recovery.signal und standby.signal verwendet.
Quelle: opennet.ru
