J'ai une application qui utilise une table PostgreSQL. Le tableau est très grand (milliards de lignes) et possède une colonne qui est un entier.
Le integer
peut contenir jusqu'à 6 chiffres, soit 0-999 999, pas de négatif.
J'ai pensé à le changer numeric(6,0)
.
Serait-ce une bonne idée? Prendrait numeric(6,0)
moins d'octets? Qu'en est-il des performances (ce tableau est beaucoup interrogé)?
postgresql
Ofiris
la source
la source
numeric
colonne parint
?La réponse définitive est non à toutes vos questions. Entier est toujours la voie à suivre pour tout ce que vous pouvez l'utiliser. (L'argent, par exemple)
Pensez-y une minute. Lorsque le moteur de base de données rencontre un entier, il le gère très efficacement car il n'y a pas beaucoup d'interprétation. C'est un nombre entier. Le type numérique se comporte plus comme une chaîne. Le moteur doit d'abord déterminer quelles parties se trouvent avant et après la virgule décimale et les masser de manière appropriée pour effectuer des opérations numériques.
L'utilisation d'un entier sera toujours plus efficace qu'un numérique, bien que les types numériques soient souvent plus pratiques pour les humains.
la source
NUMERIC
. Un entier mis à l'échelle est bien mieux que d'utiliser une valeur à virgule flottante pour l'argent.