Какой тип данных лучше всего использовать для хранения умеренных объемов текста в SQL Server (2005)?
-
03-07-2019 - |
Вопрос
Какой тип данных лучше всего использовать для хранения умеренных объемов текста в SQL Server (2005)?
Например, представьте себе таблицу, хранящую информацию о загрузках, доступных на веб-сайте.Мне нужен краткий заголовок для загрузки, скажем, varchar(20).Путь, скажем, varchar(255), тогда я хочу сохранить удобный для пользователя текст о загрузке - описание.В некоторых случаях оно может быть таким же коротким, как и заголовок, в других случаях вам может потребоваться несколько абзацев пояснений.
Что лучше?Varchar размером, скажем, 4000, или varchar(max) или что-то еще?
Решение
Максимальная длина описания программы согласно спецификации PAD (Portable Application Description) составляет 2000 символов *см. раздел «Описания программ».
http://www.asp-shareware.org/pad/spec/spec.php
Инструменты отправки сайта загрузки используют эту спецификацию, чтобы авторам было проще отправлять свое программное обеспечение.Также я думаю, что вы можете скачать пару списков, соответствующих спецификации PAD.
Поэтому я бы предложил varchar(2000), исходя из того факта, что я не хотел бы хранить больше, чем мне нужно.Для varchar(max) достаточно одной записи, но если у вас тысячи, стоимость хранения может возрасти.
Редактировать:varchar(max) может быть 2 ГБ - 1, поэтому я бы его ограничил.http://msdn.microsoft.com/en-us/library/ms176089(SQL.90).aspx
Другие советы
используйте varchar(max), вы можете поместить в него огромный текст, и размер его хранилища увеличится по мере необходимости.у вас могут быть функции группировки sql, такие как группировка по varchar (max).или вы можете выбрать текстовый тип данных, если ищете полнотекстовый поиск в SQL.
Размер должен зависеть от размера хранимых данных.Не используйте varchar (max) для поля состояния, состоящего всего из двух символов.Обычно я смотрю на наибольшее значение, которое ожидаю получить, а затем добавляю коэффициент погрешности 10–20 % при определении размера.Не забудьте использовать nvarchar, если вам нужно хранить символы Юникода.