Yo lo que haría es basarme en la documentación oficial de postgresql para citar ciertos aspectos.
Por ejemplo:
Cita: Tip: There is no performance difference among these three types, apart from increased storage space when using the blank-padded type, and a few extra CPU cycles to check the length when storing into a length-constrained column. While character(n) has performance advantages in some other database systems, there is no such advantage in PostgreSQL; in fact character(n) is usually the slowest of the three because of its additional storage costs. In most situations text or character varying should be used instead.
Tomado de
http://www.postgresql.org/docs/9.0/i...character.html Cita: The type integer is the common choice, as it offers the best balance between range, storage size, and performance. The smallint type is generally only used if disk space is at a premium. The bigint type should only be used if the integer range is insufficient, because the latter is definitely faster.
tomado de:
http://www.postgresql.org/docs/9.0/s...e-numeric.html.
Asumo que si hablas de autoincrementales en postgresql te refieres a el "tipo de dato" serial o en general a las secuencias. Puedes hablar un poco de eso referente a la documentación oficial.
saludos