Nvarchar или varchar, что лучше использовать умножить на 2 или округленные полные числа?

Мой вопрос - это то, что лучше использовать при генерации столбцов в SQL. Если размер nvarchar (varchar) должен быть умножен на 2 (32, 64, 128) или это не имеет значения, и мы можем использовать в полном объеме пример "100", "50"?

Большое спасибо за ответы с причинами.

Приветствие всем

Ответ 1

Не имеет значения. Используйте размер, соответствующий вашим данным.

Например, SQL Server, если вы посмотрите на Anatomy of the Record, вы увидите, что ваш размер переводится в сдвиги записи, которые зависят на предыдущей записи в таблице, нулевые значения и другие факторы, особенно с учетом сжатия строк и сжатия страниц. К моменту доступа к полю любое сходство с оригинальным выражением о соотношении размеров, видимостью силы 2 или степенями 10, давно не прошло. Кроме того, различные элементы выше в стеке выполнения запроса, такие как объединения операторов или операторов сортировки или что-то еще, также не будут иметь преимуществ от двух размеров (у меня нет ссылок на "доказательство", но все в порядке, если вы примете мое слово для этого...), Также не выполняется протокол TDS, когда данные маршалинга возвращаются клиенту. И я тоже мало польжу от клиента.

Ответ 2

Нет причин использовать кратность 2. Установите поле в соответствии с оценочным размером ваших данных.

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

Ответ 3

Я проголосую за то, чтобы это не имело значения. Выберите, что наиболее важно для вашего приложения. Используйте человекочитаемые ценности. Выберите хорошие имена для переменных и столбцов. Только в очень экстремальных случаях вам нужно будет настроиться. Когда вы узнаете, что вам нужно настроиться, настройтесь. До тех пор, идите с тем, что имеет наибольший смысл с точки зрения бизнеса или человека.

Ответ 4

Нет никакой выгоды в том, что размер столбцов (N)VARCHAR равен 2. Используйте все, что подходит для вашей модели домена.

Ответ 5

это не имеет значения, значения всех столбцов таблицы строятся движком, чтобы соответствовать друг другу на физической странице