Bonjour tout le monde , j'ai un doute sur un truc très simple a mon avis .
Exemple j'ai un mot "chocolat" je le stocke dans deux colonne différente un varchar limité a 10 et un autre dans un varchar limité a 255 , le quelle prendra le plus de place ?
Merci de votre réponse
- Edité par Leugeritecte 12 octobre 2018 à 23:14:31
Sur cette partie du cours, il est expliqué que la différence tient plus entre un CHAR et un VARCHAR qu'entre deux VARCHAR. Le stockage représentera toujours un octet par lettre plus un octet pour la taille.
Par contre, ça doit influer sur la mise en INDEX de ta colonne, mais je suis trop novice pour me permettre de t'expliquer
Pour stocker "chocolat" ce sera pareil (1 octet pour la taille plus 8 octets pour la chaîne)
Parce que quand on prend la peine de chercher dans la doc de MySQL, ô magie, c'est expliqué :
> In contrast to CHAR, VARCHAR values are stored as a 1-byte or 2-byte length prefix plus data. The length prefix indicates the number of bytes in the value. A column uses one length byte if values require no more than 255 bytes, two length bytes if values may require more than 255 bytes.
Parce que 10 et 255 <= 255 en taille, donc les deux demandent 1 octet pour stocker la taille de la chaîne.
En espérant qu'il était question de MySQL, tu n'as même pas pris la peine non plus de préciser le SGBD ... Bien que le fonctionnement doit être assez similaire d'un SGBD à l'autre.
Donc la limitation de la taille du varchar n'a aucun impacte sur le poid que la taille soit limité a 10 ou 255 et que je stocke le mot "chocolat" les deux pèseront 9 octet .C'est bien sa ? merci
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli
julp.fr ~ PHP < 8.0.0 : activer les erreurs PDO/SQL ~ PHP < 8.1.0 : activer les erreurs mysqli