BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Les Fonctionnalités Postgres 10 pour les Développeurs

Les Fonctionnalités Postgres 10 pour les Développeurs

Favoris

La 10ème version du populaire SGBD PostgresSQL a été publiée il y a quelques semaines. Agé de 21 ans, Postgres est populaire auprès des développeurs pour sa fiabilité, ses économies, sa maturité et bien sûr en tant qu’un SGBD open source.

Postgres 10 apporte plusieurs nouvelles fonctionnalités parmi lesquelles certaines sont surtout passionnantes pour les développeurs. 10Clouds a expliqué en détail certaines de ces fonctionnalités dans un article sur leur blog. Le partitionnement natif est désormais simplifié avec Postgres 10 en éliminant le besoin de triggers dans la master table. Cela signifie que la création de tables partitionnées est plus simple et que l'interrogation et l'insertion dans ces tables sont désormais identiques à une table non partitionnée du point de vue du développeur.

Les statistiques multi colonnes constituent un autre domaine d'amélioration pour Postgres 10. En corrélant les données de différentes colonnes, le planificateur de requêtes peut maintenant éviter certains cas où on pense que la clause where est plus sélective qu'elle ne l'est en réalité et ralentit le temps d'exécution en sélectionnant le mauvais plan. Cette amélioration de view de Postgres est innovante dans le monde SQL.

Le parallélisme s'est également amélioré avec Postgres 10. Un développeur peut désormais utiliser les analyses d'index et d'index-only, les jointures de fusion parallèles et les analyses de bitmap heap. Les requêtes parallèles sont implémentées via différents opérateurs. Dans certains cas, les coûts d'installation et de démontage peuvent dépasser les avantages de la parallélisation. Par défaut, l'analyse de table en parallèle peut être activée sur des tables de plus de 8 Mo et des index supérieurs à 512 Ko utilisant au maximum 8 workers, mais ces options peuvent être configurées selon les besoins.

Une autre nouveauté importante de Postgres 10 est la recherche en texte intégral dans les colonnes de type JSON et JSONB. Une fois que nous avons créé un index de texte intégral spécifique au langage, nous pouvons rechercher directement les valeurs dans les champs JSON. Les index de texte intégral sur les colonnes JSON sont similaires à tous les autres types de colonnes. Nos requêtes doivent donc utiliser la syntaxe de recherche de texte avec les fonctions to_tsquery et to_tsvector.

Les colonnes d'identité ou les colonnes d'auto-incrémentation constituent également un autre domaine d'amélioration. La nouvelle implémentation est un peu plus verbeuse mais d'un autre côté elle est conforme au standard SQL facilitant ainsi les migrations entre différentes bases de données. En plus de cela, en utilisant Postgres 10, nous n'avons plus besoin de modifier les séquences pour redémarrer avec un identifiant différent, mais nous pouvons modifier la colonne et Postgres identifiera que cette colonne est une séquence, simplifiant nos opérations quotidiennes dans les bases de données.

Comme prévu, il y a des changements qui ne sont pas rétrocompatibles. La prise en charge des horodatages à virgule flottante a été supprimée, pg_dump pour les versions inférieures à 8 a été supprimé et certaines valeurs par défaut autour de la réplication et de l'outil pg_basebackup ont également été modifiées. La numérotation des versions est passée de trois à deux parties, que les scripts des développeurs ne devraient pas utiliser de toute manière directement, mais utilisent à la place autre chose comme le server_version_num qui renvoie les numéros de version uniformément triables et comparables.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT