Beginners Guide to TikTok for Search - Rachel Pearson - We are Tilt __ Bright...
Nouveautés PostgreSQL 12
1. PostgreSQL 12 : Nouveautés
Sébastien Lardière
Loxodata
décembre 2019
slardiere PG12 – décembre 2019 1 / 36
2. Break It! Drop It!
Break It!
slardiere PG12 – décembre 2019 2 / 36
3. Break It! Drop It!
recovery.conf → /dev/null
slardiere PG12 – décembre 2019 3 / 36
4. Break It! Drop It!
standby et restauration
le fichier recovery.conf disparait
les paramètres sont dans postgresql.conf
les fichiers recovery.signal et standby.signal permettent de contrôler l’état
de l’instance
slardiere PG12 – décembre 2019 4 / 36
5. Break It! Drop It!
Restauration
une seule cible :
parmi : recovery_target_lsn, recovery_target_name,
recovery_target_time, et recovery_target_xid
avant, la dernière trouvée était utilisée
slardiere PG12 – décembre 2019 5 / 36
6. Break It! Drop It!
Les CTEs sont maintenant en ligne
l’exécution des CTEs était toujours séparée : CTE Scan on <ctename>
désormais en ligne dans le plan d’exécution
possibilité de forcer le fencing : with <ctename> as materialized ( ... )
attention aux régressions
slardiere PG12 – décembre 2019 6 / 36
7. Break It! Drop It!
L’option WITH OIDS de CREATE TABLE disparaît
déjà obsolète depuis longtemps
le type oid existe toujours
les attributs oid de pg_catalog sont maintenant visibles
aussi disparaissent :
les types abstime, reltime, et tinterval
l’extension timetravel
les attributs pg_constraint.consrc et pg_attrdef.adsrc
slardiere PG12 – décembre 2019 7 / 36
16. SQL
Et aussi :
optimisation de l’espace des Btree
performance du partitionnement accrue : INSERT/COPY, ATTACH, grand nombre de
partitions
réduction de l’empreinte des WALs pour les index GiST, GIN, et SP-GiST
index couvrants pour les GiST
CREATE STATISTICS : tableau des valeurs les plus communes sur plusieurs colonnes
SET SCHEMA ’value’ alias de SET search_path TO value (une seule valeur)
slardiere PG12 – décembre 2019 16 / 36
18. Clients
Authentification :
authentification GSSAPI chiffrée dans pg_hba.conf : hostgssenc et
hostnogssenc
vérification du rôle dans le certificat client : clientcert=verify-full
découverte des serveurs LDAP dans les enregistrements DNS SRV
ssl_min_protocol_version et ssl_max_protocol_version
slardiere PG12 – décembre 2019 18 / 36
23. Internals
ALTER TABLE
amélioration des performances :
ALTER TABLE ... SET NOT NULL
ALTER TABLE ... SET DATA TYPE entre timestamp et timestamptz , si UTC
slardiere PG12 – décembre 2019 23 / 36
25. Internals
VACUUM
paramètres vacuum_truncate et toast.vacuum_truncate pour ne plus
tronquer les pages de fin de segments
option INDEX_CLEANUP et vacuum_index_cleanup (tables) pour ne pas traiter les
index
option SKIP_LOCKED pour ne pas traiter les tables qu’on ne peut verrouiller tout de
suite
slardiere PG12 – décembre 2019 25 / 36
26. Internals
ACCESS METHOD
CREATE ACCESS METHOD pour de nouveaux types de tables
heap est toujours la seule méthode
à venir : zheap, zedstore
slardiere PG12 – décembre 2019 26 / 36
27. Internals
Et aussi :
parallélisation des transactions SERIALIZABLE
vue pg_stat_progress_create_index pour CREATE INDEX et REINDEX
vue pg_stat_progress_cluster pour CLUSTER et VACUUM FULL
pg_upgrade --clone (au lieu de --link)
slardiere PG12 – décembre 2019 27 / 36
31. Configuration
WAL :
wal_recycle and wal_init_zero : contrôle le recyclage des fichiers de WALs
utile pour les systèmes de fichiers faisant du Copy On Write
slardiere PG12 – décembre 2019 31 / 36
32. Configuration
Digits
permet : SET work_mem = ’30.1GB’
les paramètres utilisant le temps peuvent être en microsecondes : us
slardiere PG12 – décembre 2019 32 / 36