Rilascio del DBMS PostgreSQL 15

Dopo un anno di sviluppo, è stato pubblicato un nuovo ramo stabile del DBMS PostgreSQL 15. Gli aggiornamenti per il nuovo ramo verranno rilasciati nell'arco di cinque anni fino a novembre 2027.

Principali innovazioni:

  • Aggiunto il supporto per il comando SQL "MERGE", che assomiglia all'espressione "INSERT ... ON CONFLICT". MERGE consente di creare istruzioni SQL condizionali che combinano le operazioni INSERT, UPDATE e DELETE in un'unica espressione. Ad esempio, utilizzando UNISCI, puoi unire due tabelle inserendo i record mancanti e aggiornando quelli esistenti. UNISCI IN conto_cliente ca USANDO transazioni_recenti t ON t.id_cliente = ca.id_cliente QUANDO ABBINATO POI AGGIORNA IMPOSTA saldo = saldo + valore_transazione QUANDO NON ABBINATO POI INSERIRE (id_cliente, saldo) VALORI (t.id_cliente, valore_transazione);
  • Gli algoritmi per l'ordinamento dei dati in memoria e su disco sono stati notevolmente migliorati. A seconda del tipo di dati, i test mostrano un aumento della velocità di smistamento dal 25% al ​​400%.
  • Le funzioni della finestra che utilizzano row_number(), rango(), dense_rank() e count() sono state velocizzate.
  • È stata implementata la possibilità di esecuzione parallela di query con l'espressione “SELECT DISTINCT”.
  • Il meccanismo per la connessione di tabelle esterne Foreign Data Wrapper (postgres_fdw) implementa il supporto per i commit asincroni oltre alla capacità aggiunta in precedenza di elaborare in modo asincrono le richieste ai server esterni.
  • Aggiunta la possibilità di utilizzare algoritmi LZ4 e Zstandard (zstd) per comprimere i log delle transazioni WAL, che, con alcuni carichi di lavoro, possono contemporaneamente migliorare le prestazioni e risparmiare spazio su disco. Per ridurre i tempi di ripristino dopo un errore, è stato aggiunto il supporto per il recupero proattivo delle pagine visualizzate nel registro WAL.
  • L'utilità pg_basebackup ha aggiunto il supporto per la compressione lato server dei file di backup utilizzando i metodi gzip, LZ4 o zstd. È possibile utilizzare i propri moduli per l'archiviazione, evitando così la necessità di eseguire comandi della shell.
  • Sono state aggiunte una serie di nuove funzioni per l'elaborazione delle stringhe utilizzando le espressioni regolari: regexp_count(), regexp_instr(), regexp_like() e regexp_substr().
  • La possibilità di aggregare tipi multirange (“multirange”) è stata aggiunta alla funzione range_agg().
  • Aggiunta la modalità security_invoker, che consente di creare viste eseguite come utente chiamante anziché come creatore della vista.
  • Per la replica logica, è stato implementato il supporto per filtrare le righe e specificare elenchi di colonne, consentendo al lato del mittente di selezionare un sottoinsieme di dati dalla tabella per la replica. Inoltre, la nuova versione semplifica la gestione dei conflitti, ad esempio ora è possibile saltare le transazioni in conflitto e disattivare automaticamente un abbonamento quando viene rilevato un errore. La replica logica consente l'utilizzo di commit a due fasi (2PC).
  • È stato aggiunto un nuovo formato di registro: jsonlog, che salva le informazioni in un formato strutturato utilizzando il formato JSON.
  • L'amministratore ha la possibilità di delegare i diritti individuali agli utenti per modificare determinati parametri di configurazione del server PostgreSQL.
  • L'utilità psql ha aggiunto il supporto per la ricerca di informazioni sulle impostazioni (pg_settings) utilizzando il comando "\dconfig".
  • È garantito l'utilizzo della memoria condivisa per l'accumulo di statistiche sul funzionamento del server, il che consente di eliminare un processo separato di raccolta delle statistiche e di reimpostazione periodica dello stato su disco.
  • È stata fornita la possibilità di utilizzare le impostazioni locali ICU predefinite "ICU Collation"; in precedenza, solo le impostazioni locali libc potevano essere utilizzate come impostazioni locali predefinite.
  • È stata proposta un'estensione incorporata pg_walinspect, che consente di ispezionare il contenuto dei file con i registri WAL utilizzando query SQL.
  • Per lo schema pubblico, a tutti gli utenti, ad eccezione del proprietario del database, è stata revocata l'autorità per eseguire il comando CREATE.
  • In PL/Python è stato rimosso il supporto per Python 2. La modalità di backup esclusivo obsoleta è stata rimossa.

Aggiunta: dalle 19:00 alle 20:00 (MSK) si terrà un webinar in cui verranno discusse le modifiche nella nuova versione con Pavel Luzanov (Postgres Professional). Per coloro che non possono partecipare alla trasmissione, è aperta la registrazione del rapporto di giugno di Pavel “PostgreSQL 15: MERGE and more” presso PGConf.Russia.

Fonte: opennet.ru

Aggiungi un commento