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 verranno rilasciati per un periodo di 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 che combinano in un'unica espressione le operazioni di INSERT, UPDATE e DELETE. Ad esempio, utilizzando MERGE è possibile fondere due tabelle, inserendo le registrazioni mancanti e aggiornando quelle 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 sul disco sono stati notevolmente migliorati. A seconda del tipo di dati, nei test si osserva un aumento della velocità di ordinamento dal 25% fino al 400%.
  • È stata accelerata l'esecuzione delle funzioni di finestra utilizzando row_number(), rank(), dense_rank() e count().
  • È stata implementata la possibilità di eseguire query 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 già esistente capacità di gestione asincrona delle query verso server esterni.
  • È stata aggiunta la possibilità di applicare algoritmi LZ4 e Zstandard (zstd) per la compressione dei log WAL delle transazioni, il che consente di aumentare simultaneamente le prestazioni e risparmiare spazio su disco in determinate condizioni di carico. Per ridurre i tempi di ripristino dopo un guasto è stato aggiunto il supporto per il prelievo anticipato delle pagine citate nel log WAL.
  • Nell'utilità pg_basebackup è stata aggiunta la supporto per la compressione dei file di backup sul lato, utilizzando i metodi gzip, LZ4 o zstd. È stata fornita la possibilità di utilizzare moduli personalizzati per l'archiviazione, consentendo di evitare la necessità di eseguire comandi shell. serverÈ stata aggiunta una serie di nuove funzioni per la manipolazione delle stringhe con l'uso di 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 invocatore, anziché del creatore della vista.
  • È stata aggiunta la modalità security_invoker, che consente di creare viste eseguite con i diritti dell'utente invocatore, anziché del creatore della vista.
  • Per la replica logica è stata implementata una funzionalità di filtraggio delle righe e di definizione di elenchi di colonne, che consente al mittente di selezionare 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 le transazioni in conflitto e di disattivare automaticamente l'iscrizione in caso di errore. Nella replica logica è consentito l'uso dei commit a due fasi (2PC).
  • È stato aggiunto un nuovo formato di log — jsonlog, che salva le informazioni in forma strutturata, utilizzando il formato JSON.
  • L'amministratore ha la possibilità di delegare agli utenti specifici diritti per modificare determinati parametri. configurazione del server PostgreSQL.
  • Nell'interfaccia psql è stata aggiunta la funzionalità di ricerca delle informazioni sulle impostazioni (pg_settings) tramite il comando «\dconfig».
  • È stato garantito l'uso della memoria condivisa per accumulare statistiche sulle prestazioni del server, il che ha consentito di eliminare il processo separato di raccolta statistiche e il reset periodico dello stato su disco.
  • È stata introdotta la possibilità di utilizzare per impostazione predefinita le impostazioni locali ICU «ICU Collation», in precedenza era possibile utilizzare solo le impostazioni locali libc come predefinite.
  • È stato proposto un'estensione integrata pg_walinspect, che consente di ispezionare il contenuto dei file dei log WAL tramite query SQL.
  • Per lo schema public, a tutti gli utenti, ad eccezione del proprietario del database, è stata revocata la possibilità di eseguire il comando CREATE.
  • In PL/Python è stata rimossa la supporto per Python 2. È stato eliminato il modo esclusivo obsoleto di backup («exclusive backup»).

Nota: Dalle 19:00 alle 20:00 (MSK) si terrà un webinar-discussione sulle modifiche della nuova versione con Pavel Luzanov (Postgres Professional). Per coloro che non riusciranno a unirsi alla diretta, è disponibile la registrazione della relazioni 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