Re: explaining the pg_total_relation_size/pg_relation_size results - Mailing list pgsql-admin

From David G. Johnston
Subject Re: explaining the pg_total_relation_size/pg_relation_size results
Date
Msg-id CAKFQuwYTfs75mqiQSAB8phgw35gHHUpoWMu-AAsCA9TGke1hFw@mail.gmail.com
Whole thread Raw
In response to explaining the pg_total_relation_size/pg_relation_size results  (Wells Oliver <wells.oliver@gmail.com>)
List pgsql-admin
On Wed, Jun 20, 2018 at 3:26 PM, Wells Oliver <wells.oliver@gmail.com> wrote:
I have the follwing in a view to glance at the size of my relations:

pg_size_pretty(pg_relation_size(c.oid::regclass)) AS size,
pg_total_relation_size(c.oid::regclass) AS bytes

This view sorts by pg_relation_size(c.oid::regclass) descending.

The question is: the byte values are often higher for relations with a lower size indicated by size. As I sit here, I see an 11GB table of 23821893632 bytes and a 12GB table of 14545387520 bytes, and lastly/weirdly, a 3194MB table of 19924844544 bytes.

Can someone give me the quck explainer here of what I am looking at? I tend to trust the size more than the bytes but I want to understand both better.

​The documented difference between the two size functions are "indexes" and "toast" (and the non-main forks which are a small fraction of the difference).  Any observation of an inverse relationship between the two doesn't seem actionable...

Toast is basically "automatic large object storage"; I leave the docs to cover indexes.

David J.

pgsql-admin by date:

Previous
From: Alvaro Herrera
Date:
Subject: Re: explaining the pg_total_relation_size/pg_relation_size results
Next
From: Amine Tengilimoglu
Date:
Subject: Postgresql Conections Get Stuck on BIND and Server Don't Reboot