A maioria das operações é mais rápida para
integer
simples , mas a diferença é muito pequena e normalmente a menor de suas preocupações ao otimizar o desempenho. O tamanho do armazenamento é mais relevante, mas a diferença entre vários tipos inteiros ainda é muito pequena e geralmente pouco relevante, às vezes perdida para preenchimento e alinhamento. Existem outros tipos de dados que podem desperdiçar muito mais espaço.
smallint
(int2
) ocupa 2 bytes no disco e na RAM.integer
(int
, int4
) ocupa 4 bytes no disco e na RAM.bigint
(int8
) ocupa 8 bytes no disco e na RAM. Detalhes para tipos numéricos no Postgres no manual.
Existem vários outros fatores para o tamanho real do armazenamento. Você deve considerar a sobrecarga de página e tupla, alinhamento e preenchimento, possíveis valores NULL, indexação ...
Detalhes:
Há algum potencial para otimizar, mas normalmente não muito. Concentre-se em escolher um tipo de dados apropriado para seus dados e não se preocupe com pequenas diferenças de armazenamento e desempenho, a menos que você saiba exatamente o que está fazendo.