В следующей таблице M представляет объявленную длину столбца в символах для недвоичных типов строк и байтов для двоичных типов строк. L представляет фактическую длину в байтах заданного строкового значения.
VARCHAR (M), VARBINARY (M): L + 1 байты, если значения столбца требуют 0 - 255 байт, L + 2 байта, если значения могут требуется более 255 байт
Для каждой используемой таблицы MySQL выделяет память для 4 строк. Для каждого из этих строки CHAR (X)/VARCHAR (X) вверх по символам X.
A TEXT/BLOB, с другой стороны, представленный 8-байтовым указателем + a 1-4 байта (в зависимости от BLOB/TEXT). BLOB/TEXT - это динамически распределяется по использованию. Это будет используйте меньше памяти, но в некоторых случаях это может фрагментировать вашу память в длинных работать.
Изменить. В качестве отложенного блобинга хранят двоичные данные и текстовые магазины ASCII, это единственная разница между TINYBLOB и TINYTEXT.
Ответ 2
VARCHAR (255) больше SQL-стандарта, чем tinyblob или tinytext. Таким образом, ваш script и приложение будут более переносимыми между поставщиками баз данных.
Ответ 3
Вы не можете применить CHARACTER SET к TINYTEXT, но вы можете использовать VARCHAR (255)