PostgreSQL 15 DBMS-release

Na een jaar van ontwikkeling is er een nieuwe stabiele tak van het PostgreSQL 15 DBMS gepubliceerd. Updates voor de nieuwe tak zullen over een periode van vijf jaar worden uitgebracht tot november 2027.

Belangrijkste innovaties:

  • Ondersteuning toegevoegd voor het SQL-commando "MERGE", dat lijkt op de uitdrukking "INSERT ... ON CONFLICT". Met MERGE kunt u voorwaardelijke SQL-instructies maken die INSERT-, UPDATE- en DELETE-bewerkingen combineren in één enkele expressie. Met MERGE kunt u bijvoorbeeld twee tabellen samenvoegen door ontbrekende records in te voegen en bestaande records bij te werken. SAMENVOEGEN IN klant_account ca GEBRUIK recente_transacties t AAN t.customer_id = ca.customer_id WANNEER OVEREENGEKOMEN DAN UPDATE SET saldo = saldo + transactie_waarde WANNEER NIET OVEREENKOMST DAN VOEG (klant_id, saldo) WAARDEN in (t.klant_id, t.transactie_waarde);
  • Algoritmen voor het sorteren van gegevens in het geheugen en op schijf zijn aanzienlijk verbeterd. Afhankelijk van het type gegevens laten tests een toename van de sorteersnelheid zien van 25% naar 400%.
  • Vensterfuncties die gebruik maken van row_number(), rank(), density_rank() en count() zijn versneld.
  • De mogelijkheid voor parallelle uitvoering van queries met de uitdrukking “SELECT DISTINCT” is geïmplementeerd.
  • Het mechanisme voor het verbinden van externe tabellen Foreign Data Wrapper (postgres_fdw) implementeert ondersteuning voor asynchrone commits naast de eerder toegevoegde mogelijkheid om verzoeken aan externe servers asynchroon te verwerken.
  • De mogelijkheid toegevoegd om LZ4- en Zstandard-algoritmen (zstd) te gebruiken om WAL-transactielogboeken te comprimeren, wat, onder bepaalde werkbelastingen, tegelijkertijd de prestaties kan verbeteren en schijfruimte kan besparen. Om de hersteltijd na een storing te verkorten, is ondersteuning toegevoegd voor het proactief ophalen van pagina's die in het WAL-logboek verschijnen.
  • Het hulpprogramma pg_basebackup heeft ondersteuning toegevoegd voor compressie van back-upbestanden op de server met behulp van de gzip-, LZ4- of zstd-methoden. Het is mogelijk om uw eigen modules te gebruiken voor archivering, zodat u geen shell-opdrachten hoeft uit te voeren.
  • Er is een reeks nieuwe functies toegevoegd voor het verwerken van tekenreeksen met behulp van reguliere expressies: regexp_count(), regexp_instr(), regexp_like() en regexp_substr().
  • De mogelijkheid om typen met meerdere bereiken (“multirange”) te aggregeren is toegevoegd aan de functie range_agg().
  • Beveiliging_invoker-modus toegevoegd, waarmee u weergaven kunt maken die worden uitgevoerd als de bellende gebruiker in plaats van als de maker van de weergave.
  • Voor logische replicatie is ondersteuning geïmplementeerd voor het filteren van rijen en het specificeren van lijsten met kolommen, waardoor aan de kant van de afzender een subset van gegevens uit de tabel kan worden geselecteerd voor replicatie. Daarnaast vereenvoudigt de nieuwe versie het conflictbeheer, zo is het nu mogelijk om conflicterende transacties over te slaan en automatisch een abonnement uit te schakelen wanneer er een fout wordt gedetecteerd. Logische replicatie maakt het gebruik van tweefasige commits (2PC) mogelijk.
  • Er is een nieuw logformaat toegevoegd: jsonlog, dat informatie in een gestructureerde vorm opslaat met behulp van het JSON-formaat.
  • De beheerder heeft de mogelijkheid om individuele rechten aan gebruikers te delegeren om bepaalde PostgreSQL-serverconfiguratieparameters te wijzigen.
  • Het psql-hulpprogramma heeft ondersteuning toegevoegd voor het zoeken naar informatie over instellingen (pg_settings) met behulp van de opdracht “\dconfig”.
  • Het gebruik van gedeeld geheugen is verzekerd voor het verzamelen van statistieken over de werking van de server, wat het mogelijk maakt om af te rekenen met een afzonderlijk proces van het verzamelen van statistieken en het periodiek resetten van de status naar de schijf.
  • Er is de mogelijkheid geboden om de standaard ICU-landinstellingen “ICU Sortering” te gebruiken; voorheen konden alleen libc-landinstellingen als standaardlandinstelling worden gebruikt.
  • Er is een ingebouwde extensie pg_walinspect voorgesteld, waarmee u de inhoud van bestanden met WAL-logs kunt inspecteren met behulp van SQL-query's.
  • Voor het openbare schema is de bevoegdheid van alle gebruikers, met uitzondering van de database-eigenaar, om de opdracht CREATE uit te voeren, ingetrokken.
  • Ondersteuning voor Python 2 is verwijderd in PL/Python. De verouderde exclusieve back-upmodus is verwijderd.

Toevoeging: Van 19 tot 00 uur (MSK) is er een webinar waarin de wijzigingen in de nieuwe versie worden besproken met Pavel Luzanov (Postgres Professional). Voor degenen die niet bij de uitzending kunnen zijn, is de opname van Pavels junirapport “PostgreSQL 20: MERGE and more” op PGConf.Rusland geopend.

Bron: opennet.ru

Voeg een reactie