Numeric vs Integer for a column - size and performance
Would this be a good idea?


No.


  would numeric(6,0) take less bytes?


No.

test=&gt; SELECT pg_column_size(INT4 '999999'), pg_column_size(NUMERIC(6,0) '999999');
 pg_column_size | pg_column_size 
----------------+----------------
              4 |             10
(1 row)



  how about the performance (this table is being queried a lot)?


Slower. It's stored as binary-coded decimal because it's an arbitrary precision value.