AprÚs un an de développement nouvelle branche stable de la base de données PostgreSQL 12. Des mises à jour pour la nouvelle branche pendant cinq ans jusqu'en novembre 2024.
Principales :
- Ajout du support des «», dont les valeurs sont calculĂ©es sur la base d'une expression englobant les valeurs d'autres colonnes dans la mĂȘme table (similaire aux vues, mais pour des colonnes sĂ©parĂ©es). Les colonnes gĂ©nĂ©rĂ©es peuvent ĂȘtre de deux types : stockĂ©es et virtuelles. Dans le premier cas, la valeur est calculĂ©e au moment de l'ajout ou de la modification des donnĂ©es, tandis que dans le second, elle l'est Ă chaque lecture en fonction de l'Ă©tat actuel d'autres colonnes. Actuellement, PostgreSQL ne supporte que les colonnes gĂ©nĂ©rĂ©es stockĂ©es;
- Ajout de la possibilitĂ© d'exĂ©cuter des requĂȘtes de donnĂ©es Ă partir de documents JSON via des , similaires Ă et dĂ©finies dans la norme SQL/JSON. Pour amĂ©liorer l'efficacitĂ© du traitement de telles expressions pour les documents stockĂ©s au format JSONB, les mĂ©canismes d'indexation existants sont utilisĂ©s;
- L'application du compilateur JIT (Just-in-Time) basĂ© sur les travaux de LLVM est activĂ©e par dĂ©faut pour accĂ©lĂ©rer l'exĂ©cution de certaines expressions lors du traitement des requĂȘtes SQL. Par exemple, le JIT est applicable pour accĂ©lĂ©rer l'exĂ©cution des expressions Ă l'intĂ©rieur des blocs « WHERE », dans les listes de sortie (target lists), les expressions agrĂ©gĂ©es et certaines opĂ©rations internes;
- La performance de l'indexation a Ă©tĂ© sensiblement augmentĂ©e. Les index B-tree sont optimisĂ©s pour fonctionner dans des conditions de modifications frĂ©quentes des index - dans les tests TPC-C, une augmentation globale de la performance et une rĂ©duction de l'espace disque utilisĂ© de 40% en moyenne ont Ă©tĂ© observĂ©es. Les frais gĂ©nĂ©raux liĂ©s Ă la gĂ©nĂ©ration du journal de prĂ©-Ă©criture (WAL) pour les types d'index GiST, GIN et SP-GiST ont Ă©tĂ© rĂ©duits. Pour GiST, il a Ă©tĂ© ajoutĂ© la possibilitĂ© de crĂ©er des index enveloppants (via l'expression INCLUDE), incluant des colonnes supplĂ©mentaires. Dans l'opĂ©ration le support pour les statistiques des valeurs les plus typiques (MCV) a Ă©tĂ© assurĂ©, permettant de gĂ©nĂ©rer des plans de requĂȘtes plus optimaux en utilisant des colonnes de distribution inĂ©gale;
- La mise en Ćuvre du partitionnement est optimisĂ©e pour les requĂȘtes impliquant des tables avec des milliers de sections, tout en se limitant Ă un sous-ensemble restreint de donnĂ©es. Les performances d'insertion de donnĂ©es dans des tables partitionnĂ©es ont Ă©tĂ© amĂ©liorĂ©es grĂące aux opĂ©rations INSERT et COPY, tout en permettant l'ajout de nouvelles sections via « ALTER TABLE ATTACH PARTITION » sans bloquer l'exĂ©cution des requĂȘtes;
- Ajout du support du dĂ©ploiement inline automatique d'expressions de table communes (, CTE), permettant d'utiliser des ensembles de rĂ©sultats nommĂ©s temporaires dĂ©finis par l'opĂ©rateur WITH. Le dĂ©ploiement inline permet d'amĂ©liorer les performances de la plupart des requĂȘtes, mais s'applique pour l'instant uniquement aux CTE non rĂ©cursifs;
- Ajout du support de de la locale « Collation », permettant de définir des rÚgles de tri et des méthodes de correspondance tenant compte du sens des caractÚres (par exemple, lors du tri des valeurs numériques, la présence d'un signe moins et d'un point avant le nombre et les différentes façons d'écriture sont prises en compte, tandis que lors de la comparaison, la casse des caractÚres et la présence d'un accent ne sont pas prises en compte);
- Ajout du support de l'authentification multifactorielle des clients, oĂč dans pg_hba.conf, l'authentification peut ĂȘtre combinĂ©e avec un certificat SSL (clientcert=verify-full) avec une mĂ©thode d'authentification supplĂ©mentaire, telle que scram-sha-256;
- Ajout du support du chiffrement de la communication lors de l'authentification via , tant cÎté client que cÎté serveur;
- Ajout du support de la définition des serveurs LDAP basés sur des enregistrements « DNS SRV », si PostgreSQL est compilé avec OpenLDAP;
- Ajout de l'opération «» pour reconstruire les index sans bloquer les opérations d'écriture dans l'index;
- Ajout de la commande , permettant d'activer et de désactiver la vérification des sommes de contrÎle des pages de données pour une base de données existante (auparavant, cette opération n'était supportée que lors de l'initialisation de la base de données);
- Fourniture d'un indicateur de progression pour les opérations CREATE INDEX, REINDEX, CLUSTER, VACUUM FULL et pg_checksums;
- Ajout de la commande «» pour connecter les gestionnaires des nouvelles méthodes de stockage de tables, optimisées pour des tùches spécifiques. Actuellement, le seul moyen d'accÚs intégré aux tables est « heap » ;
- Le fichier de configuration recovery.conf est désormais combiné avec postgresql.conf. Comme indicateurs de transition vers l'état de récupération aprÚs un échec, d'utiliser les fichiers recovery.signal et standby.signal.
Source : opennet.ru
