De fleste operationer er hurtigst for almindeligt integer
, men forskellen er meget lille og typisk den mindste af dine bekymringer, når du optimerer ydeevnen.
Lagerstørrelse er mere relevant, men forskellen mellem forskellige heltalstyper er stadig meget lille og ofte næppe relevant, nogle gange tabt på grund af polstring og justering. Der er andre datatyper, der kan spilde meget mere plads.
smallint
(int2
) optager 2 bytes på disken og i RAM.integer
(int
, int4
) optager 4 bytes på disken og i RAM.bigint
(int8
) optager 8 bytes på disken og i RAM.
Detaljer for numeriske typer i Postgres i manualen.
Der er forskellige andre faktorer for den faktiske lagerstørrelse. Du skal overveje side- og tupeloverhead, justering og polstring, mulige NULL-værdier, indeksering ...
Detaljer:
Der er et vist potentiale for optimering, men typisk ikke meget. Koncentrer dig bedst om at vælge en passende datatype til dine data og bekymre dig ikke om mindre forskelle i lagring og ydeevne, medmindre du ved præcis, hvad du gør.