varchar (255) v tinyblob v tinytext

Мой вопрос стороны действительно ли разница между tinyblob и tinytext?

Купите мой реальный вопрос, какая причина, если таковая имеется, я бы выбрал varchar (255) по tinyblob или tinytext?

В первую очередь требования к хранению и обработке / скорости памяти:

В следующей таблице M представляет объявленную длину столбца в символах для недвоичных типов строк и байтов для двоичных типов строк. L представляет фактическую длину в байтах заданного значения строки.

VARCHAR ( M ), VARBINARY ( M ):
L + 1 байт, если значения столбца требуют 0 – 255 байт,
L + 2 байта, если для значений может потребоваться более 255 байт

TINYBLOB, TINYTEXT:
L + 1 байт, где L <2 8

Кроме того, см. Этот пост:

Для каждой используемой таблицы MySQL выделяет память на 4 строки. Для каждого из этих строк столбец CHAR (X) / VARCHAR (X) принимает символы X.

С другой стороны, TEXT / BLOB представлен 8-байтовым указателем + длиной 1-4 байта (в зависимости от типа BLOB / TEXT). BLOB / TEXT динамически распределяется по использованию. Это будет использовать меньше памяти, но в некоторых случаях это может фрагментировать вашу память в долгосрочной перспективе.

Редактирование : как в стороне, blobs хранят двоичные данные и текстовые магазины ASCII, это единственная разница между TINYBLOB и TINYTEXT.

VARCHAR (255) – это больше SQL-стандарт, чем tinyblob или tinytext. Таким образом, ваш скрипт и приложение будут более переносимыми для поставщиков баз данных.

Вы не можете применить CHARACTER SET к TINYTEXT, но вы можете использовать VARCHAR (255)