У меня вопрос, есть ли разница между tinyblob и tinytext?
Купите мой реальный вопрос, какая причина, если таковая имеется, я бы выбрал varchar (255) по tinyblob или 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
Кроме того, см. this post:
Для каждой используемой таблицы MySQL выделяет память для 4 строк. Для каждого из этих строки CHAR (X)/VARCHAR (X) вверх по символам X.
A TEXT/BLOB, с другой стороны, представленный 8-байтовым указателем + a 1-4 байта (в зависимости от BLOB/TEXT). BLOB/TEXT - это динамически распределяется по использованию. Это будет используйте меньше памяти, но в некоторых случаях это может фрагментировать вашу память в длинных работать.
Изменить. В качестве отложенного блобинга хранят двоичные данные и текстовые магазины ASCII, это единственная разница между TINYBLOB и TINYTEXT.
VARCHAR (255) больше SQL-стандарта, чем tinyblob или tinytext. Таким образом, ваш script и приложение будут более переносимыми между поставщиками баз данных.
Вы не можете применить CHARACTER SET к TINYTEXT, но вы можете использовать VARCHAR (255)