La versione PostgreSQL 14 introduce nuove funzionalita'
all'RDBMS Open Source piu' avanzato.
E' passato un anno dall'uscita della precedente release
ed e' stata rilasciata la versione di produzione 14.0:
ecco quindi pubblicato anche questo documento!
In generale la versione 14 e' un'evoluzione della versione precedente con nuove funzionalita' ma anche con migliori prestazioni ed una costante attenzione al miglioramento della sicurezza dei dati.
In questo documento sono riportati in dettaglio i principali nuovi elementi introdotti nella versione 14 riportando esempi pratici di utilizzo:
E le novita' non sono solo queste... continuate a leggere!
Ora e' possibile definire parametri di OUT nelle stored procedure. In precedenza era possibile specificare IN, INOUT, VARIADIC come parameter mode e si ricorreva ad INOUT quando era necessario restituire un valore.
Come e' noto quando la dimensione di una riga supera una soglia
PostgreSQL comprime i valori delle colonne e quindi utilizza una tabella TOAST.
Oltre allo storico algoritmo di compressione delle colonne pglz e' ora disponibile
anche l'algoritmo lz4 che e' molto piu' performante anche se ottiene una
compressione leggermente inferiore.
Con le versioni precedenti alla 14 se i dati sui TOAST venivano utilizzati di frequente
era consigliabile utilizzare lo storage EXTERNAL anziche' il default EXTENDED
per evitare il costo della compressione (ma naturalmente occupando piu' spazio).
A partire dalla versione 14 e' invece consigliabile impostare la compressione LZ4:
E' anche possibile modificare il valore del parametro default_toast_compression dal default pglz ad lz4.
Il problema del wraparound delle transazioni e' particolarmente grave in PostgreSQL. Con la versione 14 l'autovacuum diventa piu' aggressivo quando ci si avvina al wraparound evitando il blocco della base dati. I nuovi parametri di controllo sono vacuum_failsafe_age e vacuum_multixact_failsafe_age.
Ora e' possibile utilizzare gli operatori di subscripting anche a jsonb e hstore.
Ora e' possibile utilizzare datatype multirange come int4multirange per gli interi, tsmultirange per i timestamp, ...
Con le extended statistics e' possibile fornire maggiori indicazioni all'ottimizzatore sulle correlazioni tra i valori delle colonne (che altrimenti utilizza la probabilita' composta per calcolare la selettivita' delle condizioni). Dalla versione 14 e' possibile raccogliere le extended statistics anche su espressioni rendendo possibile il trattamento ottimale di query particolarmente complesse.
Non sono solo quelle riportate fino ad ora le uniche variazioni importanti della versione 14 di PostgreSQL. Altre novita' interessanti sono:
Avro' dimenticato qualcosa? Certamente si!
Ecco il contenuto della
matrice delle nuove funzionalita'
di PostgreSQL 14:
Multiranges datatype,
B-tree bottom-up index deletion,
range_agg range type aggregation function,
Incremental sort for window functions,
LZ4 compression for TOAST tables,
Query pipelining,
JSONB Subscripting,
Logical replication stream in-progress transactions,
Vacuum "emergency mode"m
Foreign data wrapper query parallelism,
Import foreign table partitions,
Parallel query execution on remote databases,
BEGIN ATOMIC function bodies,
Query parallelism for RETURN QUERY.
Non c'e' solo questo:
l'elenco completo e' riportato nella
documentazione ufficiale
e nel'ottimo prospetto riassuntivo di
pgPedia.
PostgreSQL e' in costante evoluzione!
Per il passato... un documento completo con le versioni di tutti prodotti SW che ritengo
piu' significativi, ed ovviamente anche di PostgreSQL, e'
il tuo server puzza!
Per il futuro... in realta' il futuro di PostgreSQL 15 e' gia' adesso perche'
gli sviluppi per la versione 15 sono gia' formalmente iniziati [NdA 2021-07]
ed ad aprile 2022 si arrivera' al Feature Freeze in cui vengono fissate
le nuove funzionalita' che verranno aggiunte nella versione.
Arriveranno quindi le prime Beta e quindi una o piu' RC (Release Candidate)
a seconda delle necessita'.
Probabilmente entro il 2022-10 la nuova versione PG15 sara'
disponibile come produzione.
Titolo: PostgreSQL 14 - Nuove funzionalita'
Livello: Avanzato
Data: 13 Ottobre 2021
Versione: 1.0.0 -
31 Ottobre 2021
Autore:
mail [AT] meo.bogliolo.name