Page 1 sur 1

Mes Char deviennent Varchar

Posté : 16 mars 2007, 19:40
par Payfu
Bonjour,

Sur l'une de mes tables, j'avais optimisé toutes mes colonnes avec chaine en "Char" et un peu plus tard j'ai rajouté une colonne et toutes mes colonnes Char ce sont changées en Varchar.

Quelqu'un aurait-il un explication ?

Merci

Posté : 17 mars 2007, 01:28
par ouckileou

Payfu,

il existe plusieurs dizaines de SGBD différents, ce serait beaucoup plus facile de t'aider si tu nous indiquais lequel tu utilises et en quelle version...

Merci

Posté : 17 mars 2007, 01:32
par ouckileou
Ceci étant dit, je suppose que tu utilises MySQL, et il suffit donc comme souvent d'aller voir dans la documentation :

1.4.1. Les types CHAR et VARCHAR
(attention il faut chercher un peu, ce n'est pas complètement directement sur cette page)

Tu dis que tu as optimisé en utilisant Char à la place de Varchar, moi je dirais plutôt que c'est l'inverse qu'il faudrait faire

Posté : 17 mars 2007, 01:55
par Ryle
Tu dis que tu as optimisé en utilisant Char à la place de Varchar, moi je dirais plutôt que c'est l'inverse qu'il faudrait faire
Tout dépend de leur contenu... Si la chaine a toujours une taille fixe ou variant peu, le traitement d'un char est beaucoup plus rapide que celui d'un varchar.
Typiquement pour un booléen que l'on enregistre sous forme texte (genre 'T'/'F' ou 'O'/'N') et pas numérique (0/1), le type char est beaucoup plus efficace que varchar :)

En revanche tu as tout à fait raison pour une chaine dont la longueur est variable, il vaut mieux utiliser le varchar

Posté : 17 mars 2007, 11:39
par jojolapine
ou alors pour un hash md5 par exemple, on fera un char(32)...

Posté : 17 mars 2007, 11:42
par Payfu
Merci à tous pour vos contributions, j'y vois plus clair maintenant ! :D