Au cours des précédents articles, nous avons vu les différents types de parcours de données ainsi que les différents types de jointures. Il reste des nœuds effectuant une opération particulière, principalement sur un ensemble de données, comme un tri ou un agrégat, mais aussi sur plusieurs ensembles, pour une action comme un assemblage, une intersection ou un regroupement. Cet article aborde tous ces types de nœuds.
1. Nœuds d'agrégat
Il est assez fréquent de faire des calculs sur les données d'une base, en utilisant notamment les fonctions d'agrégat. L'exemple le plus courant est la fonction count(). Commençons par créer un jeu de données :
planif=# CREATE TABLE t1(c1 integer, c2 integer);
CREATE TABLE
planif=# INSERT INTO t1
planif-# SELECT i, round(random()*1000) FROM generate_series(1, 1000000) AS i;
INSERT 0 1000000
planif=# ANALYZE;
ANALYZE
La table t1 contient donc un million de lignes. La fonction count() nous permet de le calculer. Voici le plan d'exécution généré :
planif=# EXPLAIN SELECT count(*) FROM t1;
QUERY PLAN
------------------------------------------------------------------
Aggregate (cost=16925.00..16925.01 rows=1 width=0)
-> Seq Scan on t1 (cost=0.00..14425.00 rows=1000000 width=0)
(2 rows)
Tout...
- Accédez à tous les contenus de Connect en illimité
- Découvrez des listes de lecture et des contenus Premium
- Consultez les nouveaux articles en avant-première