web-dev-qa-db-fra.com

Taille de MySQL VARCHAR?

Je me demande si j'ai un VARCHAR de 200 caractères et que je mets une chaîne de 100 caractères, utilisera-t-il 200 octets ou utilisera-t-il simplement la taille réelle de la chaîne?

60
SBSTP

100 caractères.

Ceci est le var (variable) dans varchar: vous ne stockez que ce que vous avez entré (et 2 octets supplémentaires pour stocker une longueur allant jusqu'à 65535 )

S'il s'agissait de char(200), vous devriez toujours stocker 200 caractères, avec 100 espaces

Voir la documentation: "Les types CHAR et VARCHAR"

87
gbn

VARCHAR signifie qu'il s'agit d'un caractère de longueur variable, il ne prendra donc que l'espace nécessaire. Mais si vous connaissez la structure sous-jacente, il peut être judicieux de limiter VARCHAR à un maximum.

Par exemple, si vous stockiez des commentaires de l'utilisateur, vous pouvez limiter le champ de commentaire à 4 000 caractères seulement; Si tel est le cas, cela n'a aucun sens de faire en sorte que la table SQL ait un champ plus grand que VARCHAR (4000).

http://dev.mysql.com/doc/refman/5.0/en/char.html

12
dwmcc

En fait, cela prend 101 octets.

référence MySQL

5
panoet