De flesta operationer är snabbast för vanligt integer
, men skillnaden är mycket liten och vanligtvis den minsta av dina problem när du optimerar prestanda.
Lagringsstorleken är mer relevant, men skillnaden mellan olika heltalstyper är fortfarande mycket liten och ofta knappast relevant, ibland förlorad på grund av utfyllnad och justering. Det finns andra datatyper som kan slösa mycket mer utrymme.
smallint
(int2
) upptar 2 byte på disk och i RAM.integer
(int
, int4
) upptar 4 byte på disken och i RAM-minnet.bigint
(int8
) upptar 8 byte på disk och i RAM.
Detaljer för numeriska typer i Postgres i manualen.
Det finns flera andra faktorer för den faktiska lagringsstorleken. Du måste ta hänsyn till sida- och tupeloverhead, justering och utfyllnad, möjliga NULL-värden, indexering ...
Detaljer:
Det finns en viss potential för optimering, men vanligtvis inte mycket. Koncentrera dig bäst på att välja en lämplig datatyp för dina data och oroa dig inte för mindre skillnader i lagring och prestanda, om du inte vet exakt vad du gör.