Поля данных sql сервера nvchar (x) или nvarchar (max) - PullRequest
1 голос
/ 26 мая 2009

Является ли хорошей практикой установка всех текстовых полей в nvarchar (MAX)? если я не уверен, какой размер поля будет

займет ли это дополнительное пространство

Ответы [ 3 ]

1 голос
/ 26 мая 2009

Я не уверен, что вы храните в столбцах, но вы можете рассмотреть varchar вместо nvarchar. nvarchar хранит данные Unicode, которые используются для многоязычных данных и занимают больше места, чем varchar. Если в поле будет храниться только английский язык (например), то лучшим вариантом будет varchar.

1 голос
/ 26 мая 2009

varchar (max) не займет дополнительное место.

Одна опасная вещь в varchar (max) заключается в том, что кто-то потенциально может хранить в ней огромное количество данных. Это может навредить злоумышленнику. или неисправная программа, вводит адресную строку 1 МБ. Ни один клиент или веб-приложение этого не ожидают, и это может привести к их аварийному завершению.

Таким образом, в качестве лучшей практики, создайте поля varchar с указанной максимальной длиной.

1 голос
/ 26 мая 2009

Если вы не уверены, и это для чего-то вроде поля комментариев, которое может быть довольно большим, тип NVARCHAR(MAX) - это путь. Если это что-то с разумным максимумом, например, почтовый адрес, то что-то вроде NVARCHAR(100) может быть лучше.

Используется пространство до максимальной длины значения, которое в него вставлено.

Под этим я подразумеваю, что если вставить строку из 80 символов, а затем заменить ее заменой на 40 символов, выделенное пространство может оставаться равным 80 символам до тех пор, пока база данных не будет уплотнена, таблица не будет перестроена и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...