web-dev-qa-db-ja.com

postgresqlのフェッチされたタプルと返されたタプルの違い

データベースのパフォーマンスの問題を把握するのに苦労しています。オンラインで多数のリソースを使用して、何を監視し、その情報を解釈する方法を学習しています。

上記から、pg_stat_database.tup_returnedpg_stat_database.tup_fetchedの違いを明確に説明することができません。

PgAdmin4には、「Tuples out」と呼ばれる美しいグラフがあり、これらの2つの概念が対比されていますが、情報を解釈する方法がわかりません。 公式ドキュメント ではそれだけを言っています:

  • tup_returned:このデータベースのクエリによって返された行数
  • tup_fetched:このデータベースのクエリによってフェッチされた行数

「フェッチされた」と「返された」とはどういう意味ですか?

私はpostgresql 10を使用しています。

7
Rogelio Delgado

select count(*) from million_row_tableを実行すると、100万行が返されますが、フェッチされるのは1行のみです。

これらのフィールドがパフォーマンスの問題の診断に役立つことに気づいたことがありません。遅いクエリを見つけてEXPLAIN (ANALYZE, BUFFERS)を実行します。

11
jjanes