PostgreSQL 15 udgivelse

Efter et års udvikling er en ny stabil gren af ​​PostgreSQL 15 DBMS blevet offentliggjort. Opdateringer til den nye gren vil blive frigivet over fem år indtil november 2027.

Vigtigste innovationer:

  • Tilføjet understøttelse af SQL-kommandoen "MERGE", som ligner udtrykket "INSERT ... ON CONFLICT". MERGE giver dig mulighed for at oprette betingede SQL-sætninger, der kombinerer INSERT-, UPDATE- og DELETE-operationer i et enkelt udtryk. For eksempel ved at bruge MERGE kan du flette to tabeller ved at indsætte manglende poster og opdatere eksisterende. FLØT INTO customer_account ca BRUG AF recent_transactions t ON t.customer_id = ca.customer_id NÅR MATCHED SÅ OPDATERES SET balance = saldo + transaktionsværdi NÅR IKKE MATCHED SÅ INDSÆT (kunde_id, saldo) VÆRdier (t.kunde_id, t.transaktion);
  • Algoritmer til sortering af data i hukommelse og på disk er blevet væsentligt forbedret. Afhængigt af typen af ​​data viser tests en stigning i sorteringshastigheden fra 25 % til 400 %.
  • Vinduesfunktioner, der bruger row_number(), rank(), dense_rank() og count() er blevet fremskyndet.
  • Muligheden for parallel eksekvering af forespørgsler med udtrykket "SELECT DISTINCT" er implementeret.
  • Mekanismen til at forbinde eksterne tabeller Foreign Data Wrapper (postgres_fdw) implementerer understøttelse af asynkrone commits ud over den tidligere tilføjede mulighed for asynkront at behandle anmodninger til eksterne servere.
  • Tilføjet muligheden for at bruge LZ4 og Zstandard (zstd) algoritmer til at komprimere WAL transaktionslogfiler, som under nogle arbejdsbelastninger samtidigt kan forbedre ydeevnen og spare diskplads. For at reducere genoprettelsestiden efter en fejl er der tilføjet understøttelse af proaktiv hentning af sider, der vises i WAL-loggen.
  • Pg_basebackup-værktøjet har tilføjet understøttelse af server-side-komprimering af backup-filer ved hjælp af gzip-, LZ4- eller zstd-metoderne. Det er muligt at bruge dine egne moduler til arkivering, så du kan klare dig uden at skulle køre shell-kommandoer.
  • En række nye funktioner er blevet tilføjet til behandling af strenge ved hjælp af regulære udtryk: regexp_count(), regexp_instr(), regexp_like() og regexp_substr().
  • Muligheden for at aggregere multirange-typer ("multirange") er blevet tilføjet til range_agg()-funktionen.
  • Tilføjet security_invoker-tilstand, som giver dig mulighed for at oprette visninger, der kører som den kaldende bruger i stedet for visningsskaberen.
  • Til logisk replikering er understøttelse af filtrering af rækker og specificering af lister over kolonner blevet implementeret, hvilket gør det muligt på afsenderens side at vælge et undersæt af data fra tabellen til replikering. Derudover forenkler den nye version konflikthåndtering, for eksempel er det nu muligt at springe modstridende transaktioner over og automatisk deaktivere et abonnement, når der opdages en fejl. Logisk replikering tillader brugen af ​​tofasede commits (2PC).
  • Et nyt logformat er blevet tilføjet - jsonlog, som gemmer information i en struktureret form ved hjælp af JSON-formatet.
  • Administratoren har mulighed for at delegere individuelle rettigheder til brugere til at ændre visse PostgreSQL-serverkonfigurationsparametre.
  • Psql-værktøjet har tilføjet understøttelse af søgning efter information om indstillinger (pg_settings) ved hjælp af kommandoen "\dconfig".
  • Brugen af ​​delt hukommelse er sikret til at akkumulere statistik om serverens drift, hvilket gør det muligt at slippe af med en separat proces med indsamling af statistik og periodisk nulstilling af tilstanden til disk.
  • Muligheden for at bruge standard ICU-lokaliteterne "ICU Collation" er blevet givet; tidligere kunne kun libc-lokaliteter bruges som standardlokaliteter.
  • En indbygget udvidelse pg_walinspect er blevet foreslået, som giver dig mulighed for at inspicere indholdet af filer med WAL-logfiler ved hjælp af SQL-forespørgsler.
  • For det offentlige skema har alle brugere, med undtagelse af databaseejeren, fået tilbagekaldt deres autoritet til at udføre CREATE-kommandoen.
  • Understøttelse af Python 2 er blevet fjernet i PL/Python. Den forældede eksklusive backup-tilstand er blevet fjernet.

Tilføjelse: Fra 19:00 til 20:00 (MSK) vil der være et webinar, der diskuterer ændringerne i den nye version med Pavel Luzanov (Postgres Professional). For dem, der ikke er i stand til at deltage i udsendelsen, er optagelsen af ​​Pavels junirapport "PostgreSQL 15: MERGE and more" på PGConf.Russia åben.

Kilde: opennet.ru

Tilføj en kommentar