Это зависит от того, для чего вы его используете. Я не хочу давать такой общий ответ, но это правда. Как правило, старайтесь получить тип данных как можно более конкретным. Если ваши строки никогда не превысят некоторый верхний предел символов, тогда используйте VARCHAR
, потому что это будет немного более эффективно. Если вам нужно больше места, используйте TEXT
. Если вы не уверены, сколько места займет ваш текст, вы, вероятно, должны пойти с TEXT
; разница в производительности не очень велика, и лучше быть ориентированным на будущее, чем рискнуть изменить его позже, когда изменятся ваши требования. Просто мои два цента.
В комментариях Питару указывает, что, если MySQL создает временную таблицу для вашего запроса (см. this ), столбцы TEXT
не будут храниться в памяти и должны будут считываться из диск, который намного медленнее. ( Источник , внизу страницы.) Однако это не должно иметь значения для большинства запросов.
В случае, если кому-то интересно, как PostgreSQL сравнивается, я обнаружил этот тест , который показывает, что CHAR, VARCHAR и TEXT работают одинаково хорошо. Поэтому, если вы используете Postgres, не имеет значения, какой тип вы используете.