Raw size

Ioannis Theoharis <theohari@ics.forth.gr>

From: Ioannis Theoharis <theohari@ics.forth.gr>
To: pgsql-hackers@postgresql.org
Date: 2005-03-10T18:07:13Z
Lists: pgsql-hackers

Hi,

i have a table:

create table triples(
	att0 varchar(1000),
	att1 int4,
	att2 varchar(20),
	att3 varchar(1000)
)

My table has 990 raws.

The (possibly wrong) way, with wich i compute the size of the table is:
att0: 1000 * 1 Byte + 4 = 1004 Bytes
att2: 20 * 1 Byte + 4 = 24 Bytes
att3: 1000 * 1 Byte + 4 = 1004

2032 Bytes + 40 (for oid) = 2072 Bytes

990 * 2072 = 2,051,280 Bytes

BUT after clustering triples according to an index on att1:



select relname, relpages from pg_class ;
             relname             | relpages
---------------------------------+----------
 triples                         |      142  (8KB/buffer)

142 * 8 * 1024 = 1,163,264 Bytes


Is there any compression or what?