Re: Guarantees/Semantics of pg_stats

From: "Baziotis, Stefanos" <sb54(at)illinois(dot)edu>
To: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>, "pgsql-general(at)lists(dot)postgresql(dot)org" <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Guarantees/Semantics of pg_stats
Date: 2024-03-02 22:29:00
Message-ID: PH8PR11MB80617A8AD363DE13E5433736AB5D2@PH8PR11MB8061.namprd11.prod.outlook.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

Hi Laurenz,

Thanks for replying. I see. Can I maybe get accurate information if the column has an index? In other words, are there any type of indexes through which I can get the number of distinct values or the values themselves, without needing to scan the column?

Best,
Stefanos
________________________________
From: Laurenz Albe <laurenz(dot)albe(at)cybertec(dot)at>
Sent: Saturday, March 2, 2024 04:28
To: Baziotis, Stefanos <sb54(at)illinois(dot)edu>; pgsql-general(at)lists(dot)postgresql(dot)org <pgsql-general(at)lists(dot)postgresql(dot)org>
Subject: Re: Guarantees/Semantics of pg_stats

On Sat, 2024-03-02 at 07:41 +0000, Baziotis, Stefanos wrote:
> I'm interested in learning more about the guarantees/semantics of pg_stats.
> For example, is there a guarantee that the n_distinct and most_common_vals
> fields will take into account any values appearing more than M times or
> maybe with frequence more than f? In what cases will n_distinct and
> most_common_vals will miss some values?

Table Statistics are not exact. They are collected from a random sample of
the data, so they are never guaranteed to be exact.

Their purpose is to estimate the result row count and cost of execution plan
steps. You can never use them as proof.

Yours,
Laurenz Albe

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Guyren Howe 2024-03-03 00:40:06 Thoughts on user-defined types for talk at Postgres conference?
Previous Message grimy.outshine830 2024-03-02 19:58:46 Re: Content for talk on Postgres Type System at PostgresConf