A peu près tout le monde a entendu parler du partitionnement et de la réplication logique dans PostgreSQL 10. Avez-vous entendu parler du support des règles de collation ICU (International Components for Unicode)?
Cet article va présenter en quoi consiste cette nouvelle fonctionnalité mais également les gains possibles en exploitant les abbreviated keys.
La sortie de la version 10 approche à grands pas, elle est prévue pour demain : Voir ce commit
Cette nouvelle version inclue des fonctionnalités très attendues comme :
La réplication logique Le partitionnement natif Amélioration du parallélisme Statistiques multi-colonnes … Pour une liste exhaustive voir :
Les releases notes La page wiki sur la version 10 Dans cet article je vais vous présenter des améliorations sur les performances qui ne sont pas listées dans les releases notes! Aussi surprenant que cela puisse paraître, la communauté ne liste pas ce genre d’améliorations : elles ne représentent pas un changement significatif du point de vue de l’utilisateur.
Lors du dernier PGDay j’ai fait une présentation sur le fonctionnement de la recherche plein texte (Full Text Search - FTS) dans PostgreSQL.
Cette fonctionnalité est malheureusement trop peu connue. Je vois plusieurs raisons à cela :
Complexité : Le FTS fait appels à des notions inconnues d’un DBA : lemmatisation, représentation vectorielle d’un document… La tendance à utiliser un outil dédié à la recherche plein texte : Elasticsearch, SOLR … Ignorance des fonctionnalités avancées de PostgreSQL Pourtant, il y a plusieurs avantages à utiliser le FTS de PostgreSQL :
Cet article est la suite d’une série d’articles sur la réplication logique dans la version 10 de PostgreSQL
Celui-ci va porter sur les restrictions de la réplication logique.
Cet article est la suite d’une série d’articles sur la réplication logique dans la version 10 de PostgreSQL
Celui-ci va porter sur la mise en œuvre de la réplication logique.
Certains d’entre vous sont déjà au courant, la nouvelle version majeure de PostgreSQL approche à grands pas. Elle devrait sortir dans le courant du mois de septembre.
Comme chaque nouvelle version la liste de nouveautés est assez impressionnante :
partitionnement amélioration des performances sur les tris et fonctions d’agrégation extension du parallélisme : parcours d’index parallélisé, jointure parallélisée, parallélisation des sous-requêtes… statistiques étendues support des collations ICU : va permettre d’exploiter les « abbreviated keys » qui avaient dû être désactivées en 9.5 à cause d’un bug dans la libc. Les « abbreviated keys » permettaient un gain de l’ordre de 20-30% sur les tris et créations d’index. et je m’arrête là, vous pouvez avoir un aperçu des nouveautés sur la page wiki ou dans les releases notes. Une grande nouveauté de la version 10 que je vais présenter dans une série d’articles est la réplication logique.
Retarder la vérification des contraintes Remarque : Cet article a été rédigé durant le cadre de mon activité chez Dalibo]
Postgres respecte le modèle ACID, ainsi il garantie la cohérence de la base : une transaction amène la base d’un état stable à un autre.
Les données dans les différentes tables ne sont pas indépendantes mais obéissent à des règles sémantiques mises en place au moment de la conception du modèle conceptuel des données. Les contraintes d’intégrité ont pour principal objectif de garantir la cohérence des données entre elles, et donc de veiller à ce qu’elles respectent ces règles sémantiques. Si une insertion, une mise à jour ou une suppression viole ces règles, l’opération est purement et simplement annulée.
Le moteur effectue la vérification des contraintes à chaque modification (lorsque des contraintes ont été définies). Il est également possible de retarder la vérification des contraintes à la fin de la transaction, au moment du commit. Ainsi, les vérifications ne seront produites que sur les changements effectifs entre les opérations de delete, update et insert de la transaction.
La version 9.5 de PostgreSQL sortie en Janvier 2016 propose un nouveau type d’index : les Index BRIN pour Bloc Range INdex. Ces derniers sont recommandés pour les tables volumineuses et corrélées avec leur emplacement. J’ai décidé de consacrer une série d’article sur ces index :
Index BRIN - Principe Index BRIN - Fonctionnement Index BRIN - Corrélation Index BRIN - Performances Pour information, je serai présent au PGDay France à Lille le mardi 31 mai pour présenter cet index. Il y aura également plein d’autres conférences intéressantes!
Cet article est la dernier de la série, il sera consacré aux performances (maintenance, lecture, insertion…)
La version 9.5 de PostgreSQL sortie en Janvier 2016 propose un nouveau type d’index : les Index BRIN pour Bloc Range INdex. Ces derniers sont recommandés pour les tables volumineuses et corrélées avec leur emplacement. J’ai décidé de consacrer une série d’article sur ces index :
Index BRIN - Principe Index BRIN - Fonctionnement Index BRIN - Corrélation Index BRIN - Performances Pour information, je serai présent au PGDay France à Lille le mardi 31 mai pour présenter cet index. Il y aura également plein d’autres conférences intéressantes!
Dans ce troisième article nous verrons pourquoi la corrélation des données avec leur emplacement est importante pour les index BRIN.
La version 9.5 de PostgreSQL sortie en Janvier 2016 propose un nouveau type d’index : les Index BRIN pour Bloc Range INdex. Ces derniers sont recommandés pour les tables volumineuses et corrélées avec leur emplacement. J’ai décidé de consacrer une série d’article sur ces index :
Index BRIN - Principe Index BRIN - Fonctionnement Index BRIN - Corrélation Index BRIN - Performances Pour information, je serai présent au PGDay France à Lille le mardi 31 mai pour présenter cet index. Il y aura également plein d’autres conférences intéressantes!
Dans ce 2eme volet nous allons voir en détail le fonctionnement d’un index BRIN.