Pour mieux comprendre ce qu’apporte la version 10, faisons un petit récapitulatif du partitionnement avant cette version.
PostgreSQL propose depuis très longtemps ce qu’on appelle l’héritage relationnel. L’idée est de faire un lien entre deux tables, en indiquant que la table t2 hérite des colonnes de la table t1. En faisant cela, toute lecture de t1 implique une lecture des données de t1 et de t2. C’est la base du partitionnement, pouvoir lire les données de plusieurs tables avec un ordre SQL qui ne parle que de la table principale.
L’optimiseur de requêtes de PostgreSQL a été amélioré pour ignorer certaines sous-tables (ou partitions) si jamais une contrainte CHECK de ces sous-tables assure de respecter le prédicat. Par exemple, si la requête à exécuter recherche toutes les lignes de 2018 et qu’une sous-table contient une contrainte CHECK assurant qu’il n’y a que des lignes de 2017 dans cette sous-table, elle ne sera pas lue pour exécuter cette...
