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?