Som varje år mellan september och oktober har lanseringen av den nya versionen av PostgreSQL 17 tillkännagivits , och precis som med alla tidigare versioner är prioriteten fortfarande att förbättra prestanda och optimera resurser, särskilt för operationer som VACUUM, I/O och frågor, medan den viktigaste nya funktionen i den här versionen är inkrementell säkerhetskopiering.
För företagsanvändare ger uppdateringen en mängd förbättringar som förenklar databashantering och användning. Även om PostgreSQL historiskt sett har varit en relationsdatabas, utökar denna version sin integration med avancerad funktionalitet för att arbeta med JSON-dokument, en funktion som vanligtvis förknippas med MongoDB Atlas.
Vad är nytt i PostgreSQL 17
I den här nya versionen av PostgreSQL 17 har en ny datastruktur introducerats i VACUUM-operationen, vilket minskar minnesförbrukningen med upp till 20 gånger, vilket gör att dessa operationer kan vara snabbare och effektivare när det gäller delade resurser.
När det gäller prestandaförbättringar har hanteringen av Write-away Register (WAL) optimerats, vilket ger upp till dubbelt så hög skrivprestanda på system med många samtidiga frågor. Ett strömmande I/O-gränssnitt har föreslagits för att förbättra sekventiell sökning och statistikuppdateringar efter ANALYZE-operationen.
Dessutom har förbättringar implementerats i frågor med "IN"-klausuler när B-trädindex används, såväl som parallell konstruktion av BRIN-index, optimering av "NOT NULL"-kontroller och acceleration av bearbetningen av vanliga tabelluttryck (CTE). För intensiva beräkningar har SIMD-instruktioner, såsom AVX-512, införlivats för att accelerera operationer som funktionen `bit_count`.
En annan nyhet som sticker ut är nya funktioner för JSON, sedan Användare kan nu fråga JSON-datatyper med vanliga SQL-kommandon. Detta är möjligt tack vare den nya bordsfunktionaliteten json, som omvandlar JSON-data till en tabellstruktur. Därifrån kan användare göra frågor med hjälp av klausulen FROM i SQL, vilket gör att data kan returneras i ett relationsformat. Lade till "JSON_TABLE"-funktion för att konvertera JSON-data till vanliga PostgreSQL-tabeller.
Det är också värt att notera den nya funktionen för stegvis säkerhetskopiering i PostgreSQL 17, som låter dig säkerhetskopiera endast de ändringar som gjorts sedan den senaste fullständiga eller stegvisa säkerhetskopieringen , vilket optimerar bandbreddsanvändningen och minskar lagringskraven. Medan PostgreSQL redan erbjöd lösningar som WAL-arkivering, som replikerade Write-Ahead Log (WAL) för att underhålla nödvändiga delar av databasen, introducerar version 17 för första gången en inbyggd mekanism för att utföra stegvisa säkerhetskopior. Detta system minimerar inte bara driftstörningar genom att ha mindre påverkan på prestandan, utan minskar också återställningstiderna avsevärt – en viktig aspekt, eftersom återställning av säkerhetskopior ofta är en långsam och frustrerande process för användarna.
En plattformsoberoende motor implementerades för att bearbeta språkinställningar, vilket möjliggör konsekvent sortering av frågeresultat. Motorn tar hänsyn till faktorer som förekomsten av specialtecken och skiftlägeskänslighet vid sortering av värden. Den logiska replikeringsmekanismen förenklar nu databasuppgraderingsprocessen, vilket eliminerar behovet av att ta bort logiska replikeringsplatser eller synkronisera om data vid migrering till en ny version.
Andra anmärkningsvärda förändringar inkluderar :
- Export av långa strängar med kommandot `COPY` har snabbats upp med upp till två gånger.
- Optimerad kopiering när käll- och destinationskodningar matchar.
- Alternativet `ON_ERROR` har lagts till för att tillåta importen att fortsätta trots fel när data infogas.
- Lade till möjligheten att använda kolumner med unika identifierare i partitionerade tabeller.
- Implementerade en failover-funktion för att byta till en backupserver i feltoleranta konfigurationer.
- Lade till ett nytt pg_createsubscriber-verktyg för att konvertera en fysisk replik till en logisk replik.
- Introducerat "sslnegotiation"-alternativ för att förhandla säkra TLS-anslutningar direkt med hjälp av ALPN TLS-tillägget.
- Lade till fördefinierad roll pg_maintain, som ger användare rätt att utföra operationer relaterade till DBMS-underhåll
Slutligen, om du är intresserad av att lära dig mer, kan du hitta detaljerna på följande länk.