Rilascio del DBMS PostgreSQL 12

Dopo un anno di sviluppo è stata pubblicata nuovo ramo stabile del DBMS PostgreSQL 12. Aggiornamenti per il nuovo ramo usciranno nel corso di cinque anni fino a novembre 2024.

Principali novità:

  • Aggiunta la supporto per «colonne generate«, il cui valore viene calcolato sulla base di un'espressione che include i valori di altre colonne nella stessa tabella (simile alle viste, ma per colonne singole). Le colonne generate possono essere di due tipi: archiviate e virtuali. Nel primo caso, il valore viene calcolato al momento dell'inserimento o della modifica dei dati, mentre nel secondo caso viene calcolato ad ogni lettura sulla base dello stato attuale delle altre colonne. Attualmente, in PostgreSQL sono supportate solo le colonne generate archiviate;
  • Aggiunta la possibilità di eseguire query di dati da documenti JSON utilizzando Espressioni Path, simili a XPath e definite nello standard SQL/JSON. Per migliorare l'efficienza dell'elaborazione di tali espressioni per documenti memorizzati in formato JSONB, vengono utilizzati meccanismi di indicizzazione esistenti;
  • Applicazione predefinita del compilatore JIT (Just-in-Time) basato su sviluppi LLVM per velocizzare l'esecuzione di alcune espressioni durante l'elaborazione delle query SQL. Ad esempio, il JIT è applicabile per accelerare l'esecuzione delle espressioni all'interno dei blocchi «WHERE», nelle liste di output (target lists), nelle espressioni aggregate e in alcune operazioni interne;
  • Significativo aumento delle prestazioni di indicizzazione. Gli indici B-tree sono ottimizzati per lavorare in condizioni di frequenti modifiche agli indici — nei test TPC-C si osserva un aumento complessivo delle prestazioni e una riduzione del consumo di spazio su disco di circa il 40%. Ridotte le spese generali nella generazione del log di scrittura anticipata (WAL) per i tipi di indici GiST, GIN e SP-GiST. Per GiST è stata aggiunta la possibilità di creare indici wrapper (tramite l'espressione INCLUDE), inclusivi di colonne aggiuntive. Nella operazione CREATE STATISTICS è supportata la statistica sui valori più comuni (MCV), che consente di generare piani di query più ottimali quando si utilizzano colonne distribuite in modo non uniforme;
  • L'implementazione del partizionamento è ottimizzata per le query che coinvolgono tabelle con migliaia di sezioni, limitandosi però a selezionare un sottoinsieme ristretto di dati. È stato aumentato il rendimento nell'aggiunta di dati a tabelle partizionate utilizzando le operazioni INSERT e COPY, ed è stata inoltre garantita la possibilità di aggiungere nuove sezioni tramite "ALTER TABLE ATTACH PARTITION" senza bloccare l'esecuzione delle query;
  • È stato aggiunto il supporto per la distribuzione automatica inline di espressioni tabulari generiche (Common Table Expression, CTE), che consentono di utilizzare set di risultati temporanei denominati, definiti tramite l'operatore WITH. La distribuzione inline consente di migliorare le prestazioni della maggior parte delle query, ma attualmente si applica solo a CTE non ricorsivi;
  • È stata aggiunta la supporto per non deterministici attributi di collazione della località, che consentono di definire regole di ordinamento e metodi di confronto considerando il significato dei caratteri (ad esempio, nel caso dell'ordinamento dei valori numerici si tiene conto della presenza di segni meno e punti prima del numero e di diverse forme di scrittura, mentre nel confronto non si considera il maiuscolo e la presenza di accenti);
  • È stato aggiunto il supporto per la multi-fattoriale autenticazione del cliente, in cui nel pg_hba.conf per l'autenticazione è possibile combinare l'autenticazione tramite certificato SSL (clientcert=verify-full) con un metodo di autenticazione aggiuntivo, come scram-sha-256;
  • È stato aggiunto il supporto per la crittografia del canale di comunicazione durante l'autenticazione tramite GSSAPI, sia lato cliente che lato server;
  • È stato aggiunto il supporto per la definizione di server LDAP basati su record "DNS SRV", se PostgreSQL è stato compilato con OpenLDAP;
  • È stata aggiunta l'operazione "REINDEX CONCURRENTLY" per ricostruire gli indici senza bloccare le operazioni di scrittura nell'indice;
  • È stato aggiunto il comando pg_checksums, che consente di abilitare e disabilitare la verifica delle somme di controllo delle pagine dati per un database esistente (precedentemente tale operazione era supportata solo durante l'inizializzazione del database);
  • È stata fornita la visualizzazione di un indicatore di progresso per le operazioni CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL e pg_checksums;
  • È stato aggiunto il comando "CREATE ACCESS METHOD" per collegare gestori di nuovi metodi di archiviazione delle tabelle ottimizzati per compiti specifici. Attualmente, l'unico metodo di accesso integrato alle tabelle è "heap";
  • Il file di configurazione recovery.conf è stato unito a postgresql.conf. Come indicatori per il passaggio allo stato di ripristino dopo un guasto ora si deve utilizzare i file recovery.signal e standby.signal.

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