Возможный дубликат:
есть ли преимущество для varchar (500) по varchar (8000)?
В SQL Server мы можем указать тип поля varchar(n)
:
Размер хранилища - это фактическая длина в байтах введенных данных, а не n байтов.
Часто при планировании структуры базы данных я пытаюсь представить максимально возможную длину строк, которые должны быть сохранены в этих полях varchar
, а затем установить этот предполагаемый размер + некоторую резервную копию для поля varchar
. Иногда может случиться так, что изначально предоставленного помещения недостаточно для поля, а затем мне нужно увеличить длину.
Но на самом деле стоит ли ограничивать поле varchar
некоторым значением, а не просто устанавливать что-то вроде varchar(5000)
или даже varchar(max)
, которое будет 100% соответствовать делу? Есть ли какие-либо преимущества в организации страниц в SQL Server или организации индекса, когда я ограничиваю эту длину n
?
Обновление
Вот что я имею в виду (преимущество): qaru.site/info/435968/...
Да, оптимизатор запросов может угадать, сколько строк подходит на странице, если вы имеют много полей varchar, которые больше, чем необходимо, SQL Сервер может внутренне угадать неправильное количество строк.
Является ли это выше? И есть ли другие преимущества?