Я использую SQL Server 2005, и у меня есть столбец, в котором мне нужно хранить большие объемы текста (иногда более 8000 символов, ограничение varchar). Есть ли недостатки в использовании типа данных «текст»? Я также читал об использовании varchar (MAX) - было бы лучше, если бы большая часть моих данных, хранящихся в нем, содержала менее 8000 символов, но мне нужно было поддерживать больше?
В 2005 году вы всегда должны использовать новые типы LOB вместо устаревших типов (текст, ntext, изображение), если у вас есть потенциал для данных размером более 8000 байт.
Новые типы работают с большинством встроенных функций обработки строк, тогда как унаследованные типы - нет. Они хранятся в базе данных точно так же, но есть несколько небольших настроек для чтения алгоритмов для новых типов.
Однако следует помнить о некоторых вещах:
Я опубликовал сообщение в блоге, в котором это обсуждается более подробно на http://www.sqlskills.com/BLOGS/PAUL/post/Importance-of-choosing-the-right-LOB-storage-technique.aspx.
Надеюсь это поможет
Используйте varchar (max), это рекомендуемый подход в будущем, поэтому он избавит вас от проблем с обновлением, также с ним намного проще работать с текстовым типом данных.
Используйте varchar (MAX). Предел для varchar (MAX) составляет 2 ГБ.
Если содержимое меньше 8000 байт, оно будет храниться во встроенном. Однако, если содержимое превышает 8000 байт, оно сохраняется в LOB, как текстовое поле.
Кроме того, в какой-то момент в будущем будут исключены типы данных TEXT, NTEXT и IMAGE.
Несколько хороших постов от MVP Саймона Сабина об этом в его блоге. Искать Simon Sabin varchar (max)
Я согласен с Полом, по возможности используйте varchar (max).
varchar (макс.)
Текст