Rilascio del DBMS PostgreSQL 12

Dopo un anno di sviluppo pubblicato nuovo ramo stabile del DBMS PostgreSQL 12. Aggiornamenti per il nuovo ramo uscira per cinque anni fino a novembre 2024.

Il principale innovazioni:

  • Aggiunto il supporto per "colonne generate", il cui valore viene calcolato in base a un'espressione che copre i valori di altre colonne nella stessa tabella (simile alle visualizzazioni, ma per singole colonne). Le colonne generate possono essere di due tipi: archiviate e virtuali. Nel primo caso, il valore viene calcolato nel momento in cui i dati vengono aggiunti o modificati e nel secondo caso il valore viene calcolato su ciascuna lettura in base allo stato corrente delle altre colonne. Attualmente PostgreSQL supporta solo colonne generate archiviate;
  • Aggiunta la possibilità di interrogare i dati dai documenti JSON utilizzando Espressioni di percorsosomigliante XPath e definito nello standard SQL/JSON. I meccanismi di indicizzazione esistenti vengono utilizzati per migliorare l'efficienza dell'elaborazione di tali espressioni per i documenti archiviati nel formato JSONB;
  • Abilitato di default è l'utilizzo di un compilatore JIT (Just-in-Time) basato sugli sviluppi LLVM per velocizzare l'esecuzione di alcune espressioni durante l'elaborazione delle query SQL. Ad esempio, JIT viene utilizzato per accelerare l'esecuzione di espressioni all'interno di blocchi WHERE, elenchi di destinazioni, espressioni aggregate e alcune operazioni interne;
  • Le prestazioni di indicizzazione sono state notevolmente migliorate. Gli indici B-tree sono ottimizzati per funzionare in ambienti in cui gli indici cambiano frequentemente: i test TPC-C mostrano un aumento complessivo delle prestazioni e una riduzione media del consumo di spazio su disco del 40%. Riduzione del sovraccarico durante la generazione del registro write-ahead (WAL) per i tipi di indice GiST, GIN e SP-GiST. Per GiST è stata aggiunta la possibilità di creare indici wrapper (tramite l'espressione INCLUDE) che includono colonne aggiuntive. In operazione CREA STATISTICHE Viene fornito il supporto per le statistiche dei valori più comuni (MCV) per aiutare a generare piani di query più ottimali quando si utilizzano colonne distribuite in modo non uniforme.
  • L'implementazione del partizionamento è ottimizzata per query che si estendono su tabelle con migliaia di partizioni, ma sono limitate alla selezione di un sottoinsieme limitato di dati. Sono state aumentate le prestazioni di aggiunta dati alle tabelle partizionate tramite operazioni INSERT e COPY, ed è anche possibile aggiungere nuove sezioni tramite “ALTER TABLE ATTACH PARTITION” senza bloccare l'esecuzione delle query;
  • Aggiunto il supporto per l'espansione in linea automatica delle espressioni di tabella generalizzate (Espressione di tabella comune, CTE) che consentono l'uso di set di risultati denominati temporanei specificati utilizzando l'istruzione WITH. La distribuzione in linea può migliorare le prestazioni della maggior parte delle query, ma attualmente viene utilizzata solo per CTE non ricorsive;
  • Aggiunto supporto non deterministico proprietà della locale "Collation", che consente di impostare regole di ordinamento e metodi di corrispondenza tenendo conto del significato dei caratteri (ad esempio, quando si ordinano valori digitali, la presenza di un segno meno e un punto davanti a un numero e diversi tipi dell'ortografia e nel confronto non vengono presi in considerazione il caso dei caratteri e la presenza di un accento);
  • Aggiunto supporto per l'autenticazione client a più fattori, in cui in pg_hba.conf è possibile combinare l'autenticazione del certificato SSL (clientcert=verify-full) con un metodo di autenticazione aggiuntivo come scram-sha-256 per l'autenticazione;
  • Aggiunto il supporto per la crittografia del canale di comunicazione durante l'autenticazione tramite GSSAPI, sia lato client che lato server;
  • Aggiunto supporto per determinare i server LDAP in base ai record "DNS SRV" se PostgreSQL è creato con OpenLDAP;
  • Aggiunta operazione "REINDEX CONTEMPORANEAMENTE» per ricostruire gli indici senza bloccare le operazioni di scrittura sull'indice;
  • Squadra aggiunta pg_checksum, che consente di abilitare o disabilitare il controllo dei checksum delle pagine dati per un database esistente (in precedenza questa operazione era supportata solo durante l'inizializzazione del database);
  • Fornito output dell'indicatore di avanzamento per le operazioni CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL e pg_checksums;
  • Aggiunto comando "CREA METODO DI ACCESSO» per connettere gestori per nuovi metodi di archiviazione delle tabelle ottimizzati per varie attività specifiche. Attualmente l'unico metodo di accesso alle tabelle integrato è "heap";
  • Il file di configurazione recovery.conf è stato unito a postgresql.conf. Come indicatori di transizione verso lo stato di ripresa dopo un fallimento, adesso deve essere utilizzare i file recovery.signal e standby.signal.

Fonte: opennet.ru

Aggiungi un commento