Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#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.
Julien.
https://rjuju.github.io/
Hors ligne
#3 29/04/2018 05:56:57
- big1
- Membre
Re : Nombre de lignes retournées
Merci Julien.
Hors ligne
Pages : 1