Когда у меня есть текстовое поле, я обычно храню его как varchar. Но потом я столкнулся с вопросом, как узнать, какой лимит я должен разместить? Оценка того, сколько текста пользователь вводит, кажется очень неточным.
Поскольку varchar использует столько места, сколько необходимо, лучше ли установить предел намного больше, чем вы оцениваете?
Есть ли недостаток в использовании различных типов данных Text? Можно ли его искать с помощью оператора "LIKE" и подстановочных знаков?
Я думаю, что могут быть случаи, когда лучше сжать значение варчара. Но во многих случаях это нормально использовать 255 по мере его ограничения.
Varchar можно искать с помощью LIKE и wildchards.
Если пользователь, скорее всего, напечатает более 255 символов (обычный предел для VARCHAR), тогда вам понадобится ТЕКСТ, но он может быть проиндексирован. MySQL имеет индекс FULLTEXT для столбцов TEXT, который работает достаточно хорошо, но не так быстро, как столбец CHAR или VARCHAR.
Почему бы не попробовать тест на вашей локальной машине с некоторыми фиктивными данными, чтобы увидеть, как сравнивается производительность, и если вы можете делать запросы, которые вы хотели бы получить достаточно быстро?