Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
Pages : 1
#1 18/11/2013 13:33:38
- meles
- Membre
smallint ??
Bonjour à tous,
y'a t-il un intérêt quelconque (performance) à déclarer des smallint ? ou le integer (int4) classique suffit-il ?
Cordialement
Hors ligne
#2 18/11/2013 16:20:14
- arthurr
- Membre
Re : smallint ??
la taille de stockage.
un smallint = 2 octets
un integer = 4 octets
un bigint = 8 octets
Hors ligne
#3 18/11/2013 18:08:40
- meles
- Membre
Re : smallint ??
Jusqu'ici, on est bien d'accord.
Ce que je me demande, c'est : si pour une valeur dont je sais qu'elle ne dépassera pas 199 par exemple, il est plus intéressant d'utiliser un smallint (2) ou un integer (4) fera aussi bien sans que ce soit la peine de s'enquiquiner ? Est ce que ça joue vraiment sur les performance ?
@+
Hors ligne
#4 18/11/2013 18:47:52
- arthurr
- Membre
Re : smallint ??
Je l'utilise plus par réflexe que par utilité : si je sais que la donnée à stocker n'a pas besoin de stocker de grande valeur.
A noter :
- il faut parfois caster explicitement dans certaines requêtes
- il semble que le gains en place disque soit dépendant des colonnes adjacentes à la colonne (http://postgresql.1045698.n5.nabble.com … 17850.html)
Hors ligne
#5 18/11/2013 18:58:05
- meles
- Membre
Re : smallint ??
Merci pour le lien, c'est beaucoup plus pointu que ne le laissait supposer ma question puisque même l'ordre des tables à une importance.
Au final, dans mon cas, le gain sera marginal.
Cordialement
Hors ligne
#6 18/11/2013 22:25:50
- gleu
- Administrateur
Re : smallint ??
Il y a eu une discussion récente sur l'optimisation du stockage en choisissant de manière très détaillée la position des colonnes. Beaucoup de travail mais qui peut rapporter gros en espace disque.
Quant aux performances, je pense que dans le cas où vous faites de gros calculs ou de gros traitements sur ces colonnes, mieux vaut un int2 qu'un int4. Ça permet d'optimiser l'utilisation des processeurs, notamment au niveau de leur cache interne. De là à quantifier cela, il faudrait vraiment tester sur un cas métier.
Guillaume.
Hors ligne
Pages : 1