Rilascio del DBMS PostgreSQL 17

Dopo un anno di sviluppo, è stata pubblicata la nuova versione stabile del DBMS PostgreSQL 17. Gli aggiornamenti per il nuovo ramo usciranno per cinque anni fino a novembre 2029. Il supporto per PostgreSQL 12.x, il ramo più vecchio attualmente supportato, terminerà il 14 novembre.

Novità principali:

  • Durante l'operazione VACUUM (raccolta di spazzatura, pulizia e imballaggio dello spazio di archiviazione su disco) è stata implementata una nuova struttura dati che consuma fino a 20 volte meno memoria. Il passaggio alla nuova struttura ha accelerato l'esecuzione delle operazioni VACUUM e ridotto il consumo di risorse condivise.
  • È proseguita l'ottimizzazione delle prestazioni di input/output. Grazie al miglioramento del codice per la gestione del log di scrittura differita WAL, si è riusciti a raddoppiare la capacità di throughput delle operazioni di scrittura in sistemi con un elevato numero di query eseguite contemporaneamente. È stato proposto un nuovo interfaccia di input/output a flusso che ha aumentato la velocità di scansione sequenziale dei dati nelle tabelle e ha accelerato l'aggiornamento delle statistiche per il pianificatore delle query dopo l'operazione ANALYZE.
  • Le prestazioni delle query con l'espressione «IN» sono migliorate quando vengono utilizzati indici basati sulla struttura B-tree. È stata implementata la possibilità di costruire in parallelo indici BRIN (Block Range Index). Il pianificatore di query ha ottimizzato i controlli «NOT NULL» e ha accelerato l'elaborazione delle espressioni di tabella comuni (Common Table Expression, CTE) definite tramite il comando SQL «WITH». Sono state abilitate le istruzioni per processori vettoriali (SIMD) per accelerare alcuni calcoli, ad esempio, le istruzioni AVX-512 sono utilizzate per ottimizzare la funzione bit_count.
  • È stata implementata la supporto per nuove funzionalità per lavorare con il formato JSON, definite nella normativa SQL/JSON. È stata aggiunta la funzione JSON-TABLE per convertire i dati dal formato JSON in normali tabelle PostgreSQL, nonché nuovi operatori jsonpath per convertire i dati JSON in tipi di dati nativi di PostgreSQL. Sono state proposte nuove funzioni per la creazione (JSON, JSON_SCALAR e JSON_SERIALIZE) e la richiesta (JSON_EXISTS, JSON_QUERY e JSON_VALUE) di dati nel formato JSON.
  • Le funzionalità del comando SQL «MERGE» sono state ampliate, consentendo la creazione di espressioni SQL condizionali che combinano operazioni di INSERT, UPDATE e DELETE in un'unica istruzione. È stata aggiunta la supporto per l'espressione RETURNING, che permette di calcolare e restituire valori basati su righe aggiunte, aggiornate o eliminate.
  • Le capacità di caricamento ed esportazione dei dati in modalità batch sono state ampliate. Nella comando COPY, la velocità di esportazione di grandi righe è stata aumentata fino al doppio, l'operazione di copia ottimizzata per la corrispondenza tra codifiche di origine e destinazione, e è stata aggiunta l'opzione ON_ERROR, che consente di continuare l'importazione dopo errori di inserimento dei dati.
  • Per le tabelle partizionate, è stata aggiunta la possibilità di utilizzare colonne con identificatori univoci e il supporto per la tecnica di ottimizzazione delle query «Constraint exclusion».
  • Nel meccanismo di connessione a tabelle esterne Foreign Data Wrapper (postgres_fdw), è stata implementata la possibilità di passare a esterno. un server sottoquery «EXISTS» e «IN.»
  • È stato implementato un motore integrato multi-piattaforma per la gestione delle proprietà della locale "Collation", utilizzato per definire le regole di ordinamento e i metodi di confronto tenendo conto del significato dei caratteri (ad esempio, durante l'ordinamento dei valori numerici si considera la presenza di un meno e di un punto prima del numero e le diverse variazioni di scrittura, mentre durante il confronto non si tiene conto del maiuscolo e della presenza di diacritici). Il nuovo motore garantisce un comportamento uniforme nell'ordinamento dei risultati delle query, indipendentemente dalla piattaforma su cui è in esecuzione PostgreSQL.
  • Nel meccanismo di replica logica, che consente di trasmettere a un altro server le modifiche apportate al database durante l'aggiunta, la rimozione o l'aggiornamento dei record, è stato semplificato il processo di aggiornamento del DBMS. In passato, quando si passava a una nuova versione significativa, era necessario eliminare gli slot di replica logica e risincronizzare i dati, mentre ora è possibile evitare di eliminare gli slot. Per le configurazioni ad alta disponibilità è stata implementata la possibilità di gestire il failover per la replica logica. È stata aggiunta una nuova utility pg_createsubscriber per convertire una replica fisica in una nuova replica logica.
  • È stata aggiunta una nuova opzione "sslnegotiation" per negoziare direttamente le connessioni TLS sicure utilizzando l'estensione ALPN di TLS.
  • È stata implementata una nuova funzione di ruolo predefinito pg_maintain, che fornisce all'utente il diritto di eseguire operazioni legate alla manutenzione del DBMS.
  • Nell'utilità pg_basebackup, utilizzata per creare backup del database, è stata aggiunta la supporto per i backup incrementali. Per ricostruire un backup completo da un insieme di copie incrementali, è stata proposta una nuova utilità chiamata pg_combinebackup. Nell'utilità pg_dump è stata aggiunta l'opzione "--filter" per selezionare gli oggetti da includere nel dump.
  • Nell'analisi delle query utilizzando il comando SQL "EXPLAIN", è stata implementata la visualizzazione del tempo impiegato per leggere e scrivere i blocchi locali durante le operazioni di input/output. Il comando "EXPLAIN" ha anche ricevuto due nuove opzioni, "MEMORY" e "SERIALIZE", tramite le quali è possibile determinare la dimensione della memoria utilizzata e il tempo impiegato per la conversione dei dati per la trasmissione in rete.
  • È stata fornita un'indicazione del progresso dell'operazione VACUUM con gli indici.
  • È stata aggiunta la vista di sistema pg_wait_events, che insieme alla vista pg_stat_activity consente di esaminare più in dettaglio le ragioni per cui le sessioni attive si trovano in stato di attesa.

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