2008-10-07 2 views
8

В sql-сервере это имеет значение, если я определяю столбцы varchar длиной 32 или 128?Размер столбцов varchar

+3

Вы спрашиваете: имеет ли значение, если длина столбца - СИЛА ДВА? (32/64/128/256/etc) Ответ на этот вопрос очень отличается. – Portman 2009-01-24 01:56:57

ответ

3

Не должно быть заметной разницы, поскольку бэкэнд будет хранить только объем данных, которые вы вставляете в этот столбец. Он не заполняется до полного размера поля, как в столбце char.

Редактировать: Для получения дополнительной информации, это link должно быть полезно.

3

Не следует. Он просто определяет максимальную длину, которую он может разместить, фактическая используемая длина зависит от вставленных данных.

11

A varchar - это поле переменного знака. Это означает, что он может хранить текстовые данные на определенной длине. Varchar (32) может содержать только 32 символа, тогда как varchar (128) может содержать 128 символов. Если я попытался ввести «12345» в поле varchar (3); это данные, которые будут сохранены:

"123"

"45" будет "усеченным" (потерял).

Они очень полезны в тех случаях, когда вы знаете, что определенное поле будет (или только должно быть) определенной длины в максимуме. Например: почтовый индекс или аббревиатура состояния. Фактически, они обычно используются практически для всех типов текстовых данных (таких как имена/адреса/и т. Д.), Но в этих случаях вы должны быть осторожны, чтобы число, которое вы поставляете, является разумным максимумом для типа данных, которые будут заполняться эта колонка.

Однако вы должны быть осторожны при их использовании, чтобы позволить пользователю вводить максимальное количество символов, которое будет поддерживать поле. В противном случае это может привести к путанице, когда он усекает ввод пользователя.

+3

Это не бык. В дополнение к именам и адресам, я столкнулся с множеством полей varchar, которые категорически заполнены экскрементами. – csj 2013-04-17 20:32:25

Смежные вопросы