Rilascio del DBMS PostgreSQL 15

Dopo un anno di sviluppo, è stata pubblicata una nuova versione stabile del DBMS PostgreSQL 15. Gli aggiornamenti per la nuova versione saranno rilasciati per cinque anni fino a novembre 2027.

Novità principali:

  • È stata aggiunta la supporto per il comando SQL 'MERGE', simile all'espressione 'INSERT ... ON CONFLICT'. MERGE consente di creare espressioni SQL condizionali, combinando in un'unica espressione le operazioni INSERT, UPDATE e DELETE. Ad esempio, utilizzando MERGE si può organizzare la fusione di due tabelle, inserendo i record mancanti e aggiornando quelli esistenti. MERGE INTO customer_account ca USING recent_transactions t ON t.customer_id = ca.customer_id WHEN MATCHED THEN UPDATE SET balance = balance + transaction_value WHEN NOT MATCHED THEN INSERT (customer_id, balance) VALUES (t.customer_id, t.transaction_value);
  • Gli algoritmi di ordinamento dei dati in memoria e su disco sono stati significativamente migliorati. A seconda del tipo di dati, nei test si osserva un aumento della velocità di ordinamento compreso tra il 25% e il 400%.
  • Accelera il funzionamento delle funzioni di finestra utilizzando row_number(), rank(), dense_rank() e count().
  • È stata implementata la possibilità di eseguire richieste in parallelo con l'espressione 'SELECT DISTINCT'.
  • Nel meccanismo di connessione delle tabelle esterne Foreign Data Wrapper (postgres_fdw) è stata implementata la supporto per i commit asincroni, in aggiunta alla funzionalità già esistente per l'elaborazione asincrona delle richieste a server esterni.
  • È stata aggiunta la possibilità di applicare gli algoritmi LZ4 e Zstandard (zstd) per la compressione dei log WAL delle transazioni, il che consente di aumentare le prestazioni e risparmiare spazio su disco in determinate condizioni di carico. Per ridurre il tempo di recupero da un guasto, è stata aggiunta la supporto per il prefetching delle pagine presenti nel log WAL.
  • Nell'utilità pg_basebackup è stata aggiunta la supporto per la compressione dei file di backup sul lato server, utilizzando i metodi gzip, LZ4 o zstd. È stata fornita la possibilità di utilizzare moduli personalizzati per l'archiviazione, evitando la necessità di eseguire comandi shell.
  • È stata aggiunta una serie di nuove funzioni per la manipolazione delle stringhe utilizzando espressioni regolari: regexp_count(), regexp_instr(), regexp_like() e regexp_substr().
  • Nella funzione range_agg() è stata aggiunta la possibilità di aggregare tipi multirange.
  • È stata aggiunta la modalità security_invoker, che consente di creare viste eseguite con i diritti dell'utente chiamante anziché del creatore della vista.
  • Per la replica logica è stata implementata la supporto per la filtrazione delle righe e la definizione di elenchi di colonne, consentendo al lato mittente di estrarre un sottoinsieme di dati dalla tabella per la replica. Inoltre, nella nuova versione è stata semplificata la gestione dei conflitti, ad esempio è stata introdotta la possibilità di saltare transazioni conflittuali e disabilitare automaticamente l'iscrizione in caso di errore. Nella replica logica è consentito l'uso di commit a due fasi (2PC).
  • È stato aggiunto un nuovo formato di log — jsonlog, che memorizza le informazioni in modo strutturato utilizzando il formato JSON.
  • All'amministratore è stata data la possibilità di delegare agli utenti singole autorizzazioni per modificare specifici parametri. configurazione del server PostgreSQL.
  • È stata aggiunta all'utilità psql la supporto per la ricerca di informazioni sulle impostazioni (pg_settings) tramite il comando «\dconfig».
  • È garantito l'uso della memoria condivisa per raccogliere statistiche sulle prestazioni del server, eliminando la necessità di un processo separato per la raccolta delle statistiche e il successivo salvataggio dello stato su disco.
  • È stata fornita la possibilità di utilizzare per default le località ICU "ICU Collation", prima le località predefinite potevano essere solo quelle libc.
  • È stato proposto l'estensione incorporata pg_walinspect, che consente di ispezionare il contenuto dei file WAL tramite query SQL.
  • Per lo schema public, a tutti gli utenti, eccetto il proprietario del database, sono state revocate le autorizzazioni per eseguire il comando CREATE.
  • In PL/Python è stata rimossa la compatibilità con Python 2. È stata eliminata la modalità di backup esclusivo obsoleta.

Nota: Dalle 19:00 alle 20:00 (MSK) si terrà un webinar di discussione sulle modifiche della nuova versione con Pavel Luzanov (Postgres Professional). Per coloro che non potranno partecipare in diretta, è disponibile la registrazione della relazione di giugno di Pavel "PostgreSQL 15: MERGE e non solo" su PGConf.Russia.

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster