title: Making sense of Postgres row sizes
body: <p>I got a large (>100M rows) Postgres table with structure {integer, integer, integer, timestamp without time zone}. I expected the size of a row to be 3*integer + 1*timestamp = 3*4 + 1*8 = 20 bytes.</p>
  
  <p>In reality the row size is <code>pg_relation_size(tbl) / count(*)</code> = 52 bytes. Why?</p>
  
  <p>(No deletes are done against the table: <code>pg_relation_size(tbl, 'fsm')</code> ~= 0)</p>