Vous n'êtes pas identifié(e).
Pages : 1
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
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.
Julien.
https://rjuju.github.io/
Hors ligne
Merci Julien.
Hors ligne
Pages : 1