Zoals elk jaar tussen september en oktober is de release van de nieuwe versie van PostgreSQL 17 aangekondigd . Net als bij alle voorgaande versies ligt de prioriteit bij het verbeteren van de prestaties en het optimaliseren van de resources, met name voor bewerkingen zoals VACUUM, I/O en query's. De belangrijkste nieuwe functie van deze release is incrementele back-up.
Voor zakelijke gebruikers brengt de update een groot aantal verbeteringen met zich mee die het databasebeheer en -gebruik vereenvoudigen. Hoewel PostgreSQL van oudsher een relationele database is, breidt deze versie de integratie uit met geavanceerde functionaliteit voor het werken met JSON-documenten, een functie die vaak wordt geassocieerd met MongoDB Atlas.
Wat is er nieuw in PostgreSQL 17
In deze nieuwe versie van PostgreSQL 17 is een nieuwe datastructuur geïntroduceerd voor de VACUUM-bewerking. Deze structuur vermindert het geheugenverbruik tot wel twintig keer, waardoor deze bewerkingen sneller en efficiënter worden uitgevoerd wat betreft gedeelde resources.
Wat betreft prestatieverbeteringen is het beheer van write-away registers (WAL) geoptimaliseerd, waardoor de schrijfprestaties op systemen met veel gelijktijdige query's tot wel twee keer zo hoog zijn. Er is een streaming I/O-interface voorgesteld om sequentieel zoeken en statistiekupdates na de ANALYZE-bewerking te verbeteren .
Daarnaast zijn er verbeteringen doorgevoerd in query's met "IN"-clausules bij gebruik van B-tree-indexen, evenals in de parallelle constructie van BRIN-indexen, de optimalisatie van "NOT NULL"-controles en de versnelling van de verwerking van common table expressions (CTE's). Voor intensieve berekeningen zijn SIMD-instructies, zoals AVX-512, geïntegreerd om bewerkingen zoals de `bit_count`-functie te versnellen.
Een andere nieuwigheid die opvalt is de nieuwe functies voor JSON, sinds de Gebruikers kunnen nu JSON-gegevenstypen opvragen met behulp van standaard SQL-opdrachten. Dit is mogelijk dankzij de nieuwe tafelfunctionaliteit json, waarmee JSON-gegevens worden omgezet in een tabelstructuur. Van daaruit kunnen gebruikers query's maken met behulp van de clausule FROM in SQL, waardoor gegevens in een relationeel formaat kunnen worden geretourneerd. Functie `JSON_TABLE` toegevoegd om JSON-gegevens naar standaard PostgreSQL-tabellen te converteren.
Ook noemenswaardig is de nieuwe functionaliteit voor incrementele back-ups in PostgreSQL 17. Hiermee kunt u alleen de wijzigingen back-uppen die sinds de laatste volledige of incrementele back-up zijn aangebracht , waardoor het bandbreedtegebruik wordt geoptimaliseerd en de opslagbehoefte wordt verminderd. Hoewel PostgreSQL al oplossingen bood zoals WAL-archivering, waarbij het Write-Ahead Log (WAL) werd gerepliceerd om de noodzakelijke delen van de database te bewaren, introduceert versie 17 voor het eerst een native mechanisme voor het uitvoeren van incrementele back-ups. Dit systeem minimaliseert niet alleen operationele verstoringen door minder impact op de prestaties te hebben, maar verkort ook de hersteltijden aanzienlijk – een cruciaal aspect, aangezien het herstellen van back-ups vaak een traag en frustrerend proces is voor gebruikers.
Er is een platformonafhankelijke engine geïmplementeerd voor het verwerken van landinstellingen, waardoor consistente sortering van queryresultaten mogelijk is. Deze engine houdt rekening met factoren zoals de aanwezigheid van speciale tekens en hoofdlettergevoeligheid bij het sorteren van waarden. Het logische replicatiemechanisme vereenvoudigt nu het database-upgradeproces, waardoor het niet langer nodig is om logische replicatieslots te verwijderen of gegevens opnieuw te synchroniseren bij migratie naar een nieuwe versie.
Andere opvallende wijzigingen zijn onder meer :
- Het exporteren van lange tekenreeksen met het `COPY`-commando is tot twee keer versneld.
- Geoptimaliseerd kopiëren wanneer bron- en doelcoderingen overeenkomen.
- De optie `ON_ERROR` is toegevoegd zodat het importeren kan doorgaan ondanks fouten bij het invoegen van gegevens.
- De mogelijkheid toegevoegd om kolommen met unieke ID's te gebruiken in gepartitioneerde tabellen.
- Implementeerde een failover-functie om in fouttolerante configuraties over te schakelen naar een back-upserver.
- Er is een nieuw hulpprogramma pg_createsubscriber toegevoegd om een fysieke replica naar een logische replica te converteren.
- Introductie van de “sslnegotiation”-optie om rechtstreeks over veilige TLS-verbindingen te onderhandelen met behulp van de ALPN TLS-extensie.
- Voorgedefinieerde rol pg_maintain toegevoegd, die gebruikers het recht geeft om bewerkingen uit te voeren die verband houden met DBMS-onderhoud
Als u tot slot meer wilt weten, kunt u de details vinden via de volgende link.