Так как VARCHAR может иметь теперь 65k байт, то тогда вместо VARCHAR следует использовать TEXT?
Ответ 1
Длинный VARCHAR хранится таким же образом, как поле TEXT/BLOB в InnoDB.
Из памяти предполагаемого BLOB, TEXT as так как длинные VARCHAR обрабатываются такими же путь от Innodb. Вот почему Innodb руководство называет его "длинными столбцами" чем BLOB.
Если вам не нужно индексировать эти столбцы (в этом случае VARCHAR выполняется намного быстрее), нет смысла использовать VARCHAR над TEXT для длинных полей - в настройке MySQL есть определенные оптимизаторы движка поиск данных по длине, и вы должны использовать правильный тип столбца, чтобы воспользоваться этими преимуществами.
Если вы используете MyISAM, углубленное обсуждение темы здесь.
TEXT и BLOB сохраняются за столом, при этом таблица имеет указатель на расположение фактического хранилища.
VARCHAR хранится в строке с таблицей. VARCHAR быстрее, когда размер является разумным.
Согласно этот тест, VARCHAR примерно в три раза быстрее, чем текст.
Ответ 2
Текст должен использоваться для действительно длинных строк неопределенной длины. Кроме того, запросы, которые возвращают поля TEXT, как правило, намного медленнее, чем их аналоги VARCHAR.