Размер MySQL VARCHAR? - PullRequest
       9

Размер MySQL VARCHAR?

60 голосов
/ 19 августа 2011

Мне интересно, если у меня есть VARCHAR из 200 символов и что я поместил строку из 100 символов, будет ли он использовать 200 байтов или просто будет использоваться фактический размер строки?

Ответы [ 3 ]

86 голосов
/ 19 августа 2011

100 символов.

Это var (переменная) в varchar: вы сохраняете только то, что вводите (и дополнительные 2 байта для хранения длины до 65535)

Еслибыло бы char(200), тогда вы всегда сохраняли бы 200 символов, дополненных 100 пробелами

См. документы: "Типы CHAR и VARCHAR"

12 голосов
/ 19 августа 2011

VARCHAR означает, что это символ переменной длины, поэтому он займет столько места, сколько необходимо.Но если вы знали что-то о базовой структуре, возможно, имеет смысл ограничить VARCHAR каким-либо максимальным значением.

Например, если вы храните комментарии от пользователя, вы можете ограничить поле комментария только 4000 символами;если это так, то нет никакого смысла в том, чтобы в таблице sql было поле, которое больше, чем VARCHAR (4000).

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

5 голосов
/ 02 января 2015

На самом деле это займет 101 байт.

Справочник по MySQL

...