PostgreSQL 12 konzentriert sich auf verbesserte Performance
Insbesondere die Arbeit von B-Baum- und GiST-Indizes haben die PostgreSQL-Entwickler optimiert.
![PostgreSQL 12 konzentriert sich auf verbesserte Performance](https://heise.cloudimg.io/width/610/q85.png-lossy-85.webp-lossy-85.foil1/_www-heise-de_/imgs/18/2/6/8/4/7/9/8/PostgreSQL-0304394d20b49234.jpeg)
Die erste Beta-Version von PostgreSQL 12 lädt zum Testen des kommenden Release der Open-Source-Datenbank ein, das für den Herbst geplant ist. Die Neuerungen liegen vor allem unter der Haube und betreffen unter anderem die Performance für B-Baum-Indizes und für partitionierte Tabellen. Außerdem lassen sich WITH-Abfragen nun automatisch in andere Queries einbinden.
Auf dem Index
Nachdem bei dem im Herbst 2018 veröffentlichte PostgreSQL 11 vor allem Performance-Verbesserungen beim Partitionieren und für Abfragen im Fokus stand, hat sich das Team diesmal auf das Erstellen und Verwalten der Indexstrukturen konzentriert. Unter anderem haben häufig geänderte B-Bäume nun eine geringere Indexgröße, was gleichzeitig die Performance verbessert.
Außerdem erfolgt das erneute Erstellen eines Index über REINDEX nun nebenläufig und blockiert somit keine Schreiboperationen auf den Index. Die im Vorgänger eingeführte Funktion zum Erstellen von Covering Indexes über die INCLUDE-Klausel von CREATE INDEX können Administratoren nun auch für GiST-Indizes (Generalized Search Tree) verwenden
WAL und Partitionen
Das Write Ahead Logging (WAL), das Modifikationen im Interesse der Atomarität vor dem Schreiben in die Datenbank protokolliert, erzeugt für die Indexstrukturen GiST, SP-GiST (Space Partitioned GiST) und GIN (Generalized Inverted Index) weniger Daten.
Die Performance partitionierter Tabellen haben die PostgreSQL-Entwickler ebenfalls optimiert. So arbeitet das System effizienter, wenn Operationen auf einer Tabelle mit Tausenden Partitionen laufen, aber nur einen kleinen Teil davon betreffen. Auch INSERT und COPY sollen für partitionierte Tabellen performanter arbeiten. Wie bei den Indizes trägt die nebenläufige Verarbeitung bei partitionierten Tabellen zu einem Geschwindigkeitszuwachs bei: ATTACH PARTITION blockiert keine parallel ablaufenden Abfragen.
Common Table Expressions in Abfragen
Zu den nennenswerten Neuerungen für die Verwendung von PostgreSQL gehört die Option, WITH-Abfragen automatisch in andere Queries einbinden zu können. Allerdings gelten dafür einige Einschränkungen. So dürfen die inline verwendeten Common Table Expressions (CTE) nicht rekursiv sein, keine Nebeneffekte aufweisen und nur genau einmal im weiteren Teil der Abfrage referenziert werden.
Weitere Neuerungen in PostgreSQL 12 wie das Ausführen von JSON Path Queries lassen sich der offiziellen Ankündigung entnehmen. Der Sourcecode und Binaries sind auf der Seite mit den Beta-Releases von PostgreSQL zum Herunterladen verfügbar. (rme)