web-dev-qa-db-fra.com

Différence entre les tuples récupérés et retournés dans postgresql

J'ai du mal à essayer de comprendre certains problèmes de performances dans ma base de données. J'utilise un tas de ressources en ligne pour savoir quoi surveiller et comment interpréter ces informations.

De ce qui précède, je ne parviens pas à trouver une explication claire de la différence entre pg_stat_database.tup_returned et pg_stat_database.tup_fetched.

Dans pgAdmin4, il y a un beau graphique appelé "Tuples out" où ces deux concepts sont contrastés, mais je ne sais pas comment interpréter l'info. Dans le documentation officielle dit seulement que:

  • tup_returned: Nombre de lignes renvoyées par les requêtes dans cette base de données
  • tup_fetched: Nombre de lignes récupérées par les requêtes dans cette base de données

Que signifie exactement "récupéré" et "retourné"?

J'utilise postgresql 10.

7
Rogelio Delgado

Si vous faites select count(*) from million_row_table, un million de testaments de ligne seront retournés, mais une seule ligne sera récupérée.

Je ne vois pas que j'ai jamais trouvé ces champs utiles pour diagnostiquer les problèmes de performances. Trouvez votre requête lente et effectuez une EXPLAIN (ANALYZE, BUFFERS).

11
jjanes