Types de données

Résolu
dorian53 Messages postés 102 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 22 août 2005 - 1 oct. 2004 à 16:30
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 - 1 oct. 2004 à 21:59
Bonjour,

j'ai cherché sur les differents posts et sites web existant sans jamais trouver réellement ma réponse.

Pourquoi choisir un type varchar plutot que tinyblob qui est beaucoup plus avantageux en ce qui concerne la taille de stockage ?

L'attribut [M] définit le nombre de caractères maximum que le champ pourra contenir.

VARCHAR (M) [BINARY]
Occupe M+1 octets.
Ce type de données stocke des chaînes de 255 caractères maximum. L'option BINARY permet de tenir compte de la casse.

TINYBLOB (L représente la longueur de la chaîne)
Occupe L+1 octets.
Stocke des chaînes de 255 caractères maximum. Ce champ est sensible à la casse.

Est ce juste le fait que varchar est une chaine de caractere alors que tinyblob est une petite zone de texte ? (ce qui change rien de concret sur la pratique il me semble)

Merci.

DoR][aN

10 réponses

tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008
1 oct. 2004 à 19:29
non c'est l'inverse
3
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 oct. 2004 à 21:59
Le varchar prend moins de place que le char...

Mais bon tout ça ça se tient surement, l'idéal serait de faire des benchmarks, parce que c'est quand même des optimisations de bout de chandelles...

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
3
tardigrade Messages postés 208 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 2 décembre 2008
1 oct. 2004 à 18:57
Tu as de nombreuse différence la principale est l'espace alloué si tu prends un VARCHAR de 255 et un TINYBLOB tu peux utiliser jusqu'à 255 caracteres mais si ta chaine de caractere varchar ne compte que 20 caracteres la place utilisee ne sera que de 20 octets alors que dans l'autre type elle sera toujours de 255 octets peut importe la taille de ta chaine.

Tu peux imaginer le gain de place si ta table est de 1 000 000 d'occurrences et que tes chaines de dépassent que rarement les 100 caracteres.

Donc pour moi entre les deux il n'y a pas photo c'est varchar qu'il me faut

Ce qui suit vient de la doc officielle:
- Vous pouvez indexer les colonnes de type BLOB ou TEXT à partir de la version 3.23.2 de MySQL. Les versions plus anciennes ne peuvent pas indexer ces colonnes.
- Pour les index des colonnes BLOB et TEXT , vous devez spécifier une taille d'index. Pour les colonnes de type CHAR et VARCHAR , la taille du préfixe est optionnelle.
- Il n'y a pas de suppression des espaces finaux lors du stockage de valeur dans des colonnes de type BLOB et TEXT , ce qui est le cas dans pour les colonnes de type VARCHAR .
- Les colonnes BLOB et TEXT ne peuvent avoir de valeur par défaut. ( DEFAULT )
0
dorian53 Messages postés 102 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 22 août 2005
1 oct. 2004 à 19:26
Re,

Je ne comprends pas ce cas ci :

Tu peux imaginer le gain de place si ta table est de 1 000 000 d'occurrences et que tes chaines de dépassent que rarement les 100 caracteres.

le varchar réservera tjs 255 octets.
alors que le TINYBLOB s'adaptera a la taille de la valeur.

Donc je ne vois pas pkoi tu optes pr les 'varchar' ?

Merci.

DoR][aN
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
dorian53 Messages postés 102 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 22 août 2005
1 oct. 2004 à 19:44
OK tout devient plus clair, merci bcp.

DoR][aN
0
dorian53 Messages postés 102 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 22 août 2005
1 oct. 2004 à 20:02
Juste pr info, quel interet une personne a t-elle de choisir TINYBLOB ?

DoR][aN
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 oct. 2004 à 21:41
Salut ;-)

Le tiny consomme moins de ressources.

Pour les types de données mysql :

Types de données mysql

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
0
dorian53 Messages postés 102 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 22 août 2005
1 oct. 2004 à 21:47
Ah chui perdu now :/

tiny ou varchar ?

Ta réponse Anthomicro confirmerait ma premiere impression !

En bref qui prends le moins de place ?

DoR][aN
0
cs_Anthomicro Messages postés 9433 Date d'inscription mardi 9 octobre 2001 Statut Membre Dernière intervention 13 avril 2007 8
1 oct. 2004 à 21:53
Tiny ;-)

a ++

http://www.vulgarisation-informatique.com : entraide, dépannage et vulgarisation informatique
0
dorian53 Messages postés 102 Date d'inscription lundi 14 avril 2003 Statut Membre Dernière intervention 22 août 2005
1 oct. 2004 à 21:55
Merci

c'est pr cela que l'on indique pas de taille a la création je suppose.

Tres bien ton site sur lequel j'avais tiré des infos par hasard lors de mon 1er post.

Donc now juste par curiosité, quel serait l'interet pour un user d"utiliser un varchar ?

DoR][aN
0
Rejoignez-nous