Rilascio del DBMS PostgreSQL 12

Dopo un anno di sviluppo pubblicata nuova branch stabile del DBMS PostgreSQL 12. Aggiornamenti per la nuova branch usciranno per cinque anni fino a novembre 2024.

Principali novità:

  • Aggiunta la supporto per «colonne generate«, il cui valore viene calcolato in base a espressioni che includono valori di altre colonne nella stessa tabella (simile alle viste, ma per colonne singole). Le colonne generate possono essere di due tipi: memorizzate e virtuali. Nel primo caso, il valore viene calcolato al momento dell'aggiunta o della modifica dei dati, nel secondo caso — con ogni lettura basata sull'attuale stato di altre colonne. Attualmente in PostgreSQL sono supportate solo colonne generate memorizzate;
  • Aggiunta la possibilità di eseguire interrogazioni di dati da documenti JSON tramite 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;
  • L'applicazione del compilatore JIT (Just-in-Time) basato sulle innovazioni LLVM è abilitata di default per accelerare l'esecuzione di alcune espressioni durante l'elaborazione delle query SQL. Ad esempio, il JIT è utile per velocizzare l'esecuzione delle espressioni all'interno dei blocchi 'WHERE', nelle liste di target, nelle espressioni aggregate e in alcune operazioni interne;
  • Le prestazioni di indicizzazione sono significativamente aumentate. Gli indici B-tree sono ottimizzati per operare in condizioni di frequenti modifiche agli indici — nei test TPC-C si osserva un miglioramento complessivo delle prestazioni e una riduzione del consumo di spazio su disco in media del 40%. Sono stati ridotti i costi 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 (attraverso l'espressione INCLUDE) comprendenti colonne aggiuntive. Nell'operazione CREATE STATISTICS è stata introdotta la supporto per 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 della partizionatura è ottimizzata per le query che coinvolgono tabelle con migliaia di partizioni, limitandosi a campionare un insieme ristretto di dati. È stata aumentata la performance dell'aggiunta di dati nelle tabelle partizionate tramite operazioni INSERT e COPY, e sono state rese possibili aggiunte di nuove partizioni tramite "ALTER TABLE ATTACH PARTITION" senza bloccare l'esecuzione delle query;
  • Aggiunta la supporto per il dispiegamento automatico inline delle espressioni tabulari comuni (Common Table Expression, CTE), che permettono di utilizzare set di risultati temporanei denominati definiti tramite l'operatore WITH. Il dispiegamento inline consente di migliorare le prestazioni della maggior parte delle query, ma attualmente è applicabile solo a CTE non ricorsivi;
  • Aggiunto supporto per indeterminati proprietà della locale "Collation", che consente di definire regole di ordinamento e metodi di confronto considerando il significato dei caratteri (ad esempio, durante l'ordinamento dei valori numerici si tiene conto della presenza di un segno meno e di un punto prima del numero e delle varie modalità di scrittura, mentre nel confronto non si prende in considerazione il caso delle lettere e la presenza di accenti);
  • È stata aggiunta la supporto per l'autenticazione multifattoriale del cliente, in cui è possibile combinare l'autenticazione tramite certificato SSL (clientcert=verify-full) con un metodo di autenticazione aggiuntivo, come scram-sha-256, nel pg_hba.conf;
  • È stata aggiunta la supporto per la crittografia del canale durante l'autenticazione tramite GSSAPI, sia dal lato client che dal lato server;
  • È stata aggiunta la supporto per la determinazione dei server LDAP basata sulle registrazioni «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 attivare e disattivare il controllo dei checksum delle pagine dati per un database esistente (in precedenza questa operazione era supportata solo durante l'inizializzazione del database);
  • È stata garantita l'uscita di un indicatore di progresso durante le operazioni CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL e pg_checksums;
  • È stato aggiunto il comando «CREATE ACCESS METHOD» per connettere handler di nuovi metodi di archiviazione delle tabelle, ottimizzati per vari compiti specifici. Attualmente, l'unico metodo di accesso alle tabelle incorporato è «heap»;
  • Il file di configurazione recovery.conf è stato unito a postgresql.conf. Ora, per indicare il passaggio a uno stato di ripristino dopo un guasto, è necessario usare i file recovery.signal e standby.signal. è necessario 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