Planificateur – les autres nœuds

Magazine
Marque
GNU/Linux Magazine
Numéro
179
Mois de parution
février 2015
Domaines


Résumé
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 d'abord, PostgreSQL fait un parcours séquentiel de la table puis applique la fonction d'agrégat grâce au nœud

Cet article est réservé aux abonnés. Il vous reste 98% à découvrir.
à partir de 21,65€ HT/mois/lecteur pour un accès 5 lecteurs à toute la plateforme
J'en profite


Articles qui pourraient vous intéresser...

Flutter 2 : l’alternative professionnelle

Magazine
Marque
GNU/Linux Magazine
Numéro
249
Mois de parution
juin 2021
Domaines
Résumé

Le 3 mars 2021, Google annonce Flutter 2 dans le premier événement « Flutter Engage ». La target Web/PWA devient stable et les targets desktop deviennent bêta avec une preview sur stable. Du côté Dart, la null safety devient la norme. Pendant ce temps, « Courses » se structure, adopte MVVM et devient non nullable !

Pas de bras, mais quand même du chocolat : l'ère des assistants vocaux

Magazine
Marque
GNU/Linux Magazine
Numéro
249
Mois de parution
juin 2021
Domaines
Résumé

Nos interactions avec les ordinateurs (et autres smartphones) sont dignes du Moyen Âge. Qu'est-ce qui a réellement changé en la matière, ces 50 dernières années ? Rien : nous avons juste remplacé notre bon vieux clavier mécanique par un clavier virtuel, la belle affaire ! Pourtant, nous pouvons faire mieux, et nous devons faire mieux : bienvenue dans l'ère des assistants vocaux virtuels ! Nous allons découvrir ensemble ce qu'ils sont, et créer notre première application vocale.

Web scraping avec Node.js

Magazine
Marque
GNU/Linux Magazine
HS n°
Numéro
114
Mois de parution
mai 2021
Domaines
Résumé

Le web scraping, c’est l’activité qui consiste à gratter (to scrap) du code HTML pour en extraire des données exploitables. Node.js se prête particulièrement bien à l’exercice, aussi je vous propose d’apprendre à gratter de la donnée avec ce formidable outil.