La plupart des opérations sont les plus rapides pour un integer
simple , mais la différence est très faible et constitue généralement le moindre de vos soucis lors de l'optimisation des performances.
La taille de stockage est plus pertinente, mais la différence entre les différents types d'entiers est encore très petite et souvent peu pertinente, parfois perdue à cause du remplissage et de l'alignement. Il existe d'autres types de données qui peuvent gaspiller beaucoup plus d'espace.
smallint
(int2
) occupe 2 octets sur disque et en RAM.integer
(integer
, int4
) occupe 4 octets sur le disque et dans la RAM.bigint
(int8
) occupe 8 octets sur disque et en RAM.
Détails des types numériques dans Postgres dans le manuel.
Il existe divers autres facteurs pour la taille de stockage réelle. Vous devez tenir compte de la surcharge de page et de tuple, de l'alignement et du remplissage, des valeurs NULL possibles, de l'indexation ...
Détails :
- Mesurer la taille d'une ligne de table PostgreSQL
- Calculer et économiser de l'espace dans PostgreSQL
Il existe un certain potentiel d'optimisation, mais généralement pas beaucoup. Concentrez-vous sur le choix d'un type de données approprié pour vos données et ne vous souciez pas des différences mineures de stockage et de performances, à moins que vous ne sachiez exactement ce que vous faites.