Release van de database PostgreSQL 17

Na het jaar van ontwikkeling is de nieuwe stabiele tak van de database PostgreSQL 17 gepubliceerd. Updates voor deze nieuwe tak zullen de komende vijf jaar uitkomen tot november 2029. De ondersteuning voor PostgreSQL 12.x, de oudste onder de ondersteunde takken, stopt op 14 november.

Belangrijkste vernieuwingen:

  • Bij het uitvoeren van de VACUUM-operatie (opruimen van ongebruikte ruimte, schoonmaken en comprimeren van de schijfopslag) is er een nieuwe datastructuur geïntroduceerd die tot 20 keer minder geheugen verbruikt. De overstap naar de nieuwe structuur heeft de uitvoering van VACUUM-operaties versneld en het verbruik van gedeelde middelen verminderd.
  • De optimalisatie van de invoer-/uitvoersnelheid is voortgezet. Door de verbetering van de code voor het verwerken van het Write-Ahead Logging (WAL) is de doorvoer van schrijfoperaties in systemen met een groot aantal gelijktijdige verzoeken tot twee keer verhoogd. Een nieuwe interface voor streaming invoer/uitvoer is voorgesteld, waardoor de snelheid van sequentiële gegevensdoorloop in tabellen is verhoogd en de statistieken voor de query planner sneller zijn bijgewerkt na de ANALYZE-operatie.
  • De prestaties van queries met de 'IN'-expressie zijn verbeterd wanneer gebruik wordt gemaakt van indexen op basis van de B-tree-structuur. De mogelijkheid voor parallelle indexbouw van BRIN (Block Range Index) is geïmplementeerd. In de query planner zijn de 'NOT NULL'-controles geoptimaliseerd en is de verwerking van Common Table Expressions (CTE) die zijn gedefinieerd met de SQL-instructie 'WITH' versneld. Vectorprocessor-instructies (SIMD) zijn benut voor het versnellen van bepaalde berekeningen; bijvoorbeeld zijn AVX-512-instructies gebruikt om de functie bit_count te versnellen.
  • Ondersteuning voor nieuwe mogelijkheden voor het werken met het JSON-formaat, zoals gedefinieerd in de SQL/JSON-standaard, is geïmplementeerd. De functie JSON-TABLE is toegevoegd voor het omzetten van gegevens van het JSON-formaat naar gewone PostgreSQL-tabellen, evenals nieuwe jsonpath-operatoren voor het omzetten van JSON-gegevens naar native gegevenssoorten van PostgreSQL. Nieuwe functies voor het creëren (JSON, JSON_SCALAR en JSON_SERIALIZE) en het opvragen (JSON_EXISTS, JSON_QUERY en JSON_VALUE) van gegevens in JSON-formaat zijn voorgesteld.
  • De mogelijkheden van de SQL-opdracht «MERGE» zijn uitgebreid, waardoor voorwaardelijke SQL-uitdrukkingen kunnen worden gemaakt die de bewerkingen INSERT, UPDATE en DELETE in één uitdrukking combineren. Ondersteuning voor de RETURNING-uitdrukking is toegevoegd, waarmee waarden kunnen worden berekend en geretourneerd op basis van toegevoegde, bijgewerkte of verwijderde rijen. De ondersteuning voor het bijwerken van weergaven is geïmplementeerd.
  • De mogelijkheden voor het laden en exporteren van gegevens in batchmodus zijn uitgebreid. In de COPY-opdracht is de exportsnelheid voor grote rijen tot tweemaal verhoogd, is het kopiëren geoptimaliseerd wanneer de bron- en doelcodering overeenkomt, en is de ON_ERROR-optie toegevoegd, waarmee de import kan worden voortgezet na fouten bij het invoegen van gegevens.
  • Voor gepartitioneerde tabellen is de mogelijkheid toegevoegd om kolommen met unieke identificatoren te gebruiken en ondersteuning voor de optimalisatietechniek «Constraint exclusion» is geïmplementeerd.
  • In het mechanisme voor het aansluiten van externe tabellen, Foreign Data Wrapper (postgres_fdw), is de mogelijkheid om een externe verbinding te maken geïmplementeerd. server Subquery's «EXISTS» en «IN» zijn toegevoegd.
  • Er is een ingebouwde platformonafhankelijke engine ontwikkeld voor het verwerken van locale eigenschappen «Collation», die worden gebruikt voor het definiëren van sorteerregels en vergelijkingsmethoden rekening houdend met de betekenis van symbolen (bijvoorbeeld, bij het sorteren van numerieke waarden wordt rekening gehouden met het voorkomen van een minteken en punt vóór het getal en verschillende schrijfwijzen, terwijl bij vergelijking de hoofdlettergevoeligheid en het voorkomen van het accent niet in aanmerking worden genomen). De nieuwe engine garandeert een uniforme sortering van queryresultaten, ongeacht op welk platform PostgreSQL wordt uitgevoerd.
  • In het mechanisme voor logische replicatie, dat het mogelijk maakt om wijzigingen in de database te streamen naar een andere server naar aanleiding van het toevoegen, verwijderen of bijwerken van records, is het proces van het bijwerken van de database vereenvoudigd. Vroeger moest je slots voor logische replicatie verwijderen en de data opnieuw synchroniseren bij de overstap naar een nieuwe grote versie, maar nu kan dit zonder het verwijderen van slots. Voor fouttolerante configuraties is de mogelijkheid van het beheren van de failover naar de back-upserver voor logische replicatie geïmplementeerd. Een nieuwe tool pg_createsubscriber is toegevoegd voor het omzetten van een fysieke replica naar een nieuwe logische replica.
  • Er is een nieuwe optie «sslnegotiation» toegevoegd voor directe onderhandeling van beveiligde TLS-verbindingen met behulp van de TLS-extensie ALPN.
  • Een vooraf gedefinieerde rol pg_maintain is geïmplementeerd, die de gebruiker het recht geeft om operationele taken met betrekking tot het onderhoud van de database uit te voeren.
  • De tool pg_basebackup, die wordt gebruikt voor het maken van database-back-ups, heeft ondersteuning voor incrementele back-ups gekregen. Voor het reconstrueren van een volledige back-up uit een set incrementele kopieën is een nieuwe tool pg_combinebackup voorgesteld. In de tool pg_dump is de optie «—filter» toegevoegd om de te dumpen objecten te selecteren.
  • Bij het analyseren van queries met behulp van de SQL-opdracht «EXPLAIN» is de uitvoer van de tijd die is besteed aan het lezen en schrijven van lokale blokken tijdens invoer/uitvoer geïmplementeerd. De opdracht «EXPLAIN» heeft ook twee nieuwe opties «MEMORY» en «SERIALIZE» toegevoegd, waarmee de grootte van het gebruikte geheugen en de tijd die is besteed aan het transformeren van gegevens voor netwerkoverdracht kunnen worden bepaald.
  • Er is een voortgangsindicator voor de uitvoering van de VACUUM-operatie met indexen geïmplementeerd.
  • Een systeemweergave pg_wait_events is toegevoegd, die in combinatie met de weergave pg_stat_activity meer gedetailleerd inzicht geeft in de redenen waarom actieve sessies in een wachtstatus verkeren.

Bron: opennet.ru

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers 🔥 Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster