Мне интересно, если у меня есть VARCHAR из 200 символов и что я поместил строку из 100 символов, будет ли он использовать 200 байтов или просто будет использоваться фактический размер строки?
100 символов.
Это var (переменная) в varchar: вы сохраняете только то, что вводите (и дополнительные 2 байта для хранения длины до 65535)
varchar
Еслибыло бы char(200), тогда вы всегда сохраняли бы 200 символов, дополненных 100 пробелами
char(200)
См. документы: "Типы CHAR и VARCHAR"
VARCHAR означает, что это символ переменной длины, поэтому он займет столько места, сколько необходимо.Но если вы знали что-то о базовой структуре, возможно, имеет смысл ограничить VARCHAR каким-либо максимальным значением. Например, если вы храните комментарии от пользователя, вы можете ограничить поле комментария только 4000 символами;если это так, то нет никакого смысла в том, чтобы в таблице sql было поле, которое больше, чем VARCHAR (4000).
VARCHAR означает, что это символ переменной длины, поэтому он займет столько места, сколько необходимо.Но если вы знали что-то о базовой структуре, возможно, имеет смысл ограничить VARCHAR каким-либо максимальным значением.
Например, если вы храните комментарии от пользователя, вы можете ограничить поле комментария только 4000 символами;если это так, то нет никакого смысла в том, чтобы в таблице sql было поле, которое больше, чем VARCHAR (4000).
http://dev.mysql.com/doc/refman/5.0/en/char.html
На самом деле это займет 101 байт.
Справочник по MySQL