Vous n'êtes pas identifié(e).

#1 27/04/2018 17:12:09

big1
Membre

Nombre de lignes retournées

Bonjour,

Voilà une table:

 CREATE TABLE test(id SERIAL PRIMARY KEY, data JSONB);

Voici le contenu:

 1 | {"parent": null, "children": [2, 3]}
 2 | {"parent": 1, "children": [4, 5]}
 3 | {"parent": 1, "children": []}
 4 | {"parent": 2, "children": []}
 5 | {"parent": 2, "children": []}

Je fais afficher l'explain plan pour la requête suivante:

postgres@postgres=# explain SELECT *
FROM test x1
  LEFT JOIN test x2
    ON x1.id = (x2.data->>'parent')::INT;
 Hash Right Join  (cost=38.58..83.50 rows=1270 width=72)
   Hash Cond: (((x2.data ->> 'parent'::text))::integer = x1.id)
   ->  Seq Scan on test x2  (cost=0.00..22.70 rows=1270 width=36)
   ->  Hash  (cost=22.70..22.70 rows=1270 width=36)
         ->  Seq Scan on test x1  (cost=0.00..22.70 rows=1270 width=36)

Je ne comprends pas pour quoi 1270 lignes ont été traitées?
Que veut dire width ici?
merci pour vos lumières.

Dernière modification par big1 (27/04/2018 17:14:12)

Hors ligne

#2 27/04/2018 21:48:22

rjuju
Administrateur

Re : Nombre de lignes retournées

Il s'agit d'un nombre estimé de ligne.  Si vous n'avez pas effectué d'ANALYZE sur la table, postgres ne risque pas de faire une estimation correcte.  Width correspond à la largeur moyenne d'une ligne (encore une fois, ANALYZE aide).

Je vous conseille de lire https://www.postgresql.org/docs/current … plain.html si vous voulez comprendre comment lire un plan d'exécution postgres.

Hors ligne

#3 29/04/2018 05:56:57

big1
Membre

Re : Nombre de lignes retournées

Merci Julien.

Hors ligne

Pied de page des forums