PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Y a-t-il une différence dans l'enregistrement de la même valeur dans différents types d'entiers ?

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 :

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.